Skip to main content

Full text of "MSX Magazine 1-25"

See other formats


IOOO 



OIIO 



001 



El procesador 
de video del 
SVI 318/328 




Soüv 



■r AÑO II 

W Núm. 15 
Julio • Agosto 
^ 1986 
300 Ras. 




oioo 




La Guía Lotus Para Utilizar Symphony 




CARACTERISTICAS: 

• Páginas: 443 

• Papel offset: 112 grs. 

• Tamaño: 182 x 232 mm. 

• Encuademación: Rústica-cosido 



LA GUIA LOTUS PARA UTILIZAR SYMPHONY 

es un libro que le enseñará paso a paso, y de 
una forma muy práctica cómo utilizar este 
programa. 

LA GUIA LOTUS contiene: 

- Cómo crear y manejar ficheros 

- Descripción detallada de las facilidades 
que ofrecen las ventanas de SYMPHONY. 

- Apéndice que cubre las aplicaciones adi- 
cionales que van incluidas en el programa. 

- Un índice detallado y un vocabulario don- 
de fácilmente podrá encontrar cualquier 
tema que necesite. 



El complemento indispensable para el manual de SYMPHONY 
OFERTA DE LANZAMIENTO 4.500 PTAS. (IVA INCLUIDO) 



Recorte y envíe HOY MISMO este cupón a: c/ Bravo Murillo, 377 - 28020 MADRID 

CUPON DE PEDIDO 



TAMBIEN 
LO PUEDE 
ADQUIRIR 
EN SU LIBRERIA 
HABITUAL 



Con tarjeta de crédito VISA □ INTERBANK □ AMERICAN EXPRESS □ 
CONTRAREEMBOLSO □ ADJUNTO CHEQUE □ 




Número de mi tarjeta 
Fecha de caducidad 
NOMBRE 



DIRECCION 
CIUDAD 



PROVINCIA 



DIRECTOR: 

Juan Arencibia. 
COORDINADOR EDITORIAL: 

J. Ignacio Rey. 
COLABORADORES: 

Octavio López, Angel Zarazaga. 
Teresa Aranda. Ricardo García 
DISEÑO: 

Benito Gil 
Editada por: 

PUBLINFORM ATICA, S.A. 

C/ Bravo Munllo, 377 - 5 0 A 

Tel.: 733 74 13 

28020 Madrid. 

Telex 48877 OPZXE 

PRESIDENTE: 

Fernando Bolín. 

DIRECTOR EDITORIAL 

REVISTAS DE USUARIOS: 

Juan Arencibia. 

DIRECTOR DE VENTAS: 

Antonio González. 

JEFE DE PRODUCCIÓN: 

Miguel Onieva. 

SERVICIO AL CLIENTE: 

Julia González. 

Tel.: 733 79 69 

DIRECCION, REDACCION 

Y ADMINISTRACION: 

C/ Bravo Munllo, 377 - 5." A. 

Tel.: 733 74 13 

28020 Madrid. 

PUBLICIDAD EN MADRID: 

Emilio García. 

PUBLICIDAD 

EN BARCELONA: 

Lidia Cendros. 

C/ Pelayo, 12. 

Tel.: (93) 301 47 00 Ext. 27-28 

08001 Barcelona. 

Depósito Legal: M. 16.755-1985 

Impreso en Héroes, S.A. 

C/ Torrelara, 8. 28016 Madrid. 

Distribuye: 

S.G.E.L Avda. Valdelaparra, s/n. 
Alcobendas (Madrid). 

DISTRIBUIDORES: 

VENEZUELA: SIPAM, S.A. 

Avda. República 
Dominicana, 541 
ARGENTINA: DISTRIBUIDORA 

INTERCONTINENTAL 
BUENOS AIRES. 

El P.V.P. para Ceuta. Melilla y 
Cananas, incluido servicio aéreo 
será de 300 ptas. sm l.v.A. 



SUSCRIPCIONES 
Rogamos dirija toda la 
correspondencia relacionada con 
suscripciones a 
MSX 

EDISA Tel. 415 97 12 

C/López de Hoyos 1415 0 

28002 MADRID 

(Para todos los pagos reseñar 

solamente MSX) 

Para la compra de ejemplares 

atrasados diríjanse a la propia 

editorial 

MSX 

C/Bravo Munllo 377-5 0 A 

Tel 733 74 13 28020 MADRID 



Si deseas colaborar en MSX remite tus 
artículos o programas a Bravo Munllo 
377. 5 0 A 28020 Madnd Los programas 
deberán estar grabados en cassette y ios 
artículos mecanografiados 

A efectos de remuneración, se analiza 
cada colaboración aisladamente estu 
diando su complejidad y calidad 




Las vacaciones son el momento ideal para dedicarse a todas 
aquellas actividades que, durante el resto del año, no se 
pueden realizar. Además, en estas fechas, en las que todo se 
paraliza o al menos se ralentiza, es agradable ver como MSX sigue 
su curso, un curso que cada vez es más firme. 

La reciente feria, PROCESOS, que tuvo lugar en el Centro de 
Arte Reina Sofía, confirma el interesante futuro de estas máquinas 
Ordenadores conectados a CD-ROM, a unidades de vídeo o a sin- 
tetizadores de sonido, han sido algunas de las interesantes opcio- 
nes que hemos podido comprobar. Sin duda alguna, aún queda 
mucho que hacer y desarrollar, y nos ha sido grato comprobar co- 
mo, día a día se van superando metas. 

Cabe destacar que a la aparición del VG-8235, respondió So- 
ny con el HB-500 P, que comentamos en estas páginas. Este equi- 
po va a ser el enemigo principal, no sólo de otros ordenadores 
MSX de la segunda generación, sino de cualquier ordenador de 
128K del mercado. Probablemente el lector se preguntará, cómo 
hemos dedicado tan poco espacio a dicho acontecimiento. Senci- 
llamente hemos creído oportuno hacer una prueba, cara a cara, 
de estos dos equipos que publicaremos en meses sucesivos. No 
parece que exista un ganador de antemano, pero... 

Por otro lado, el software empieza a ser novedad, principal- 
mente debido a la llegada a nuestro país de programas de una im- 
portante empresa holandesa y de la aparición de programas para 
ordenadores de la 2. a generación. Para los primeros veremos un- 
simulador de vuelo en helicóptero que hará las delicias de cual- 
quiera (ver sección de Software), mientras que para los segundos 
pronto aparecerá un toolkit que facilitará la tarea de programación 
en estos potentes equipos. 



MSX 



MSX 3 





Noticias: Feria Procesos en el 
Centro de Arte Reina Solía, algo 
muy especial. SERMA cambia de ai- 
res. Mas libros de Anaya... 



SUMARIO 



8 

¿Por qué es tan lento el 

BASIC?: Aunque es el lenguaje 
de programación por excelencia de 
los ordenadores personales, cuenta 
con un gran defecto, su lentitud. 




14 

Libros: LOGO, de la tortuga a la 
Inteligencia Artificial. Un libro con 
grandes perspectivas que muestra 
una de las más importantes aplica- 
ciones, la IA Por otro lado, MSX-EI 
Manual Escolar, muestra al alumno 
el planteamiento y posterior solu- 
ción de cualquier problema. 



16 

Software: Varios son los pro- 
gramas que se presentan este vera- 
no. Entre éstos tenemos, North Sea 
Helicopter (uno de los mejores si- 
muladores de vuelo que hemos vis- 
to), Flight Deck, Beamrider, Gráficas 
de Gestión, Confused? y Drome. 




Los Modos de Pantalla: 

Descubre los secretos que escon- 
den los 1 6K de pantalla de los MSX. 





Programa: 3-D Bola. En 

este laberinto tendrás la oportuni- 
dad de demostrar tu habilidad. 




Test: Sony HB-500 P: La 

carrera por dominar el mercado de 
los ordenadores de la II generación 
empezó cuando Philips lanzó su 
modelo VG-8235. Sony, no se que- 
dó atrás e inmediatamente sacó a 
relucir una joya: el HB-500 P. 




Programa; Simón: Un en- 
tretenido juego donde hay que se- 
guir la combinación marcada por el 
ordenador a base de colores y soni- 
dos. 




Diagramas de Flujo: En 

programación existe unas herra- 
mientas que no todo el mundo utili- 
za; los diagramas de flujo u organi- 
gramas. Estos se muestran muy úti- 
les a la hora de realizar un progra- 
ma. 



Interioridades de los 

SVI-31 8/328: El procesador 
de vídeo de estos ordenadores es 
similar al que equipa los MSX, con 
algunas excepciones, las cuales 
marcan una diferencia pequeña pe- 
ro importante. 





Código Maquina: En esta 

ocasión veremos las instrucciones 
de rotación y desplazamiento. 




Rincón del Lector: Donde 

todas vuestras dudas encontrarán la 
solución. 



MSX 5 



Más libros 



para el verano 
de Anaya 

Próximamente aparecerán nue- 
vos títulos de Anaya de contenido 
general, para todos los gustos y 
usuarios. 

El «Diccionario de Informática» 
a un precio de 2.250 ptas. es una 
obra de consulta muy completa, 
que abarca desde los aspectos 
humanísticos de la informática 
hasta cuestiones puramente téc- 
nicas. 

La «Programación del 8086/ 
8088», donde se podrá estudiar el 
completo juego de instrucciones 
del procesador de Intel, es el libro 
idóneo para completar y adquirir 



un conocimiento de este micro- 
procesador. 

Para el programador o todos 
aquellos que necesiten de una pe- 
queña introducción a los sistemas 
operativos va dedicado «Introduc- 
ción a los Sistemas Operativos». 
Con unas 1 20 páginas y a un pre- 
cio de 583 ptas, esta obra servirá 
como manual de introducción a 
otros sistemas operativos más co- 
nocidos como el UNIX, CP/M y 
MS-DOS. 

También habrá un libro orienta- 
do al lenguaje C, «Programación 
en C con Tiny-C», es una obra de- 
sarrollada en base a una versión 
reducida del lenguaje C, que ha 
sido desarrollada para facilitar su 
aprendizaje. En 22 pág. y con un 
diskette incorporado, el usuario 
podrá encontrar una magnífica in- 
troducción a este lenguaje de pro- 
gramación. Sin embargo, el precio 



Idealogic y 
sus l 
programa 
para S 






Sony presentará en breve la 
nueva versión de lenguaje LOGO 
para MSX que ha elaborado IDEA- 
LOGIC S.A. 

Además de poseer todas las 
instrucciones necesarias de cual- 
quier lenguaje LOGO, incorpora a 
su vez, la posibilidad de amplair el 
lenguaje según las necesidades 
del usuario mediante la instruc- 



ción "USA". 

Esta versión es similar sintácti- 
camente a ACTI-LOGO, que esta 
empresa produce para ordenado- 
res PC-MSDOS. Esto permite que 
listados de programas hechos en 
un PC-Compatible puedan ser in- 
troducidos directamente en el HIT 
BIT de Sony. 

Por otro lado, IDEALOGIC, S.A. 
se va a encargar de la creación y 
desarrollo del software necesario 
para los ordenadores de la II ge- 
neración, concretamente del Phi- 
lips MSX-II. De estos cabe desta- 
car la aparición del programa «Ae- 
robio», con lecciones estructura- 
das según la necesidad de cada 
usuario, 1 .250 pantallas animadas 
y con acompañamiento musical 
en cada uno de los movimientos. 



(4.002 ptas. + I.VA) nos parece 
abusivo aunque lleve diskette. 

No podían faltar los dedicados 
al usuario del IBM PC. En este ca- 
so, «dBASE III», está indicado para 
ser utilizado por dos tipos de lecto- 
res. 

Primero, por el usuario de orde- 
nador que quiere indagar sobre 
las características del dBASE III y, 
segundo, el usuario que ya tiene el 
programa y necesita una guía de 
referencia rápida y sencilla. 

Para finalizar, tres obras orienta- 
das al universitario. Estas son 
«termodinánica y transmisión de 
calor», «Estadística» y «Métodos 
Matriciales». Con un precio que 
oscila entre 1 .749 y 1 .643, estos se 
presentan como una ayuda adi- 
cional, complementado los libros 
de textos. Cada uno trata un tema 
específico y concreto a nivel uni- 
versitario. 



Un robot para 
"ligar en casa 



S.V.I. España presenta como 
gran novedad el primer robot para 
MSX. El brazo robot, consta de una 
base, brazo superior, antebrazo y 
muñeca. 

Entre sus características más 
importantes, cabe destacar la po- 
sibilidad de utilizarlo tanto con el 
ordenador como con dos joys- 
ticks. 

El Robotarm está destinado a 
los jóvenes con un conocimiento 
básico de programación y robóti- 
ca elemental. 

La facilidad de poder utilizarlo 



conectado al ordenador, le dan 
unas posibilidades fuera de lo co- 
mún. Con un lenguaje de progra- 
mación propio, ROGO (similar al 
LOGO) y sencillo, el usuario podrá 
ver y comprobar todas las cualida- 
des y usos a los que se puede so- 
meter a un robo!, éste se conecta 
al ordenador mediante el bus de 
expansión con un cartucho que 
encierra el juego de instrucciones. 

En el programa de demostra- 
ción, existe una rutina que com- 
prueba el correcto funcionamiento 
de todas las piezas del robot. 

También se puede utilizar sin el 
ordenador. Sin embargo, se nece- 
sitan dos joysticks, algo que no to- 
dos los usuarios poseen. De cual- 
quier manera, con el ordenador se 
obtienen mejores resultados. 





feria muy 
particular 



Del 26 de mayo al 20 de junio se 
celebró en el Centro de Arte Reina 
Sofía la feria Procesos, cultura y 
nuevas tecnologías. 

En ella pudimos comprobar las 
diversas aplicaciones que, a pa- 
sos agigantados, están haciéndo- 
se muy conocidas y que están 
presentes en nuestra vida cotidia- 
na. 

La exposición se estructuró en 
tres ámbitos: memoria, comunica- 
ción y creación. 

La holografía, proceso por el 



cual se realizan fotografías en tres 
dimensiones, fue la constante a lo 
largo de toda la feria. En cada rin- 




cón, había un motivo, un dibujo o 
una foto con esta peculiar técnica. 

Los ordenadores también estu- 
vieron presentes y MSX, no iba a 
ser menos. Sony, con su G-900, 
mostró unas cualidades que no 
existen en ninguna otra máquina. 
Similar al HB-500 P, este modelo 
con una unidad de superposición 
de vídeo se mostró superior a apa- 
ratos dedicados a tal fin, con la sal- 
vedad que éste cuesta alrededor 
de 300.000 ptas. mientras que una 
máquina de estas características 
ronda algunos millones. Con esta 
máquina se pueden realizar efec- 
tos especiales (tipo Guerra de las 
Galaxias) en casa. 

Por otro lado, también se en- 
contraba Yamaha, que con su mo- 
delo CX5M II mostró la increíble 
capacidad musical que posee. 



Olll 




unque es el lenguaje pre- 
dominante entre los más 
conocidos, el BASIC tiene 
algunas desventajas muy eviden- 
tes cuando se le compara con 
otros lenguajes de programación, 
tales como PASCAL o FORTRAN, 
dos lenguajes de alto nivel dedi- 
cados a aplicaciones específicas. 
El PASCAL, está más generaliza- 
do que el FORTRAN (cuyas siglas 
significan FORmula TRANslator- 
traductor de fórmulas), emplean- 
do fundamentalmente en cálculos 
científicos y matemáticos, aunque 
no está implementado en los or- 
denadores personales. La primera 
pega que podemos poner al BA- 
SIC frente a estos lenguajes es su 
lentitud. Esto es fácilmente de- 
mostrable, sólo basta con crear 
cualquier figura animada y des- 
plazarla por la pantalla. 

¿Por qué motivo los programas 
desarrollados en BASIC se ejecu- 
tan más despacio que otros escri- 
tos en lenguajes de alto nivel o en- 
sambladores? 

Para ver en que consiste el pro- 
blema, veamos cómo se ejecutan 
los programas en un ordenador. 
Todos los ordenadores, desde el 
personal hasta el mainframe, eje- 
cutan los programas llevando a 
cabo instrucciones en lenguaje 
máquina. Estas instrucciones son 
órdenes codificadas eléctrica- 
mente, como ceros (0) y unos (1) 
que realizan operaciones extre- 
madamente sencillas, como por 
ejemplo, «leer un dato de memoria 
y almacenarlo en un registro». Es- 
te grupo de operaciones se deno- 
minan juego de instrucciones y ya 
vienen incorporadas al ordenador 
en la memoria ROM. 

Un programa de ordenador 
consiste en una larga serie de es- 
tas instrucciones elementales. 
,Cuando la computadora está eje- 
cutando un programa, busca es- 




MSX 9 



en portada 



tas instrucciones en la memoria y 
las va ejecutando. Cada una de 
estas cumple una pequeña fun- 
ción, sin embargo, el conjunto de 
estas hacen un programa comple- 
jo. 

Las instrucciones de lenguaje 
máquina se almacenan en memo- 
ria en grupos de bits. Los bits pue- 
den ser representados en el siste- 
ma binario como cadenas de 
unos y ceros (ver «Sistemas de 
numeración», MSX núm. 2) 



TEXTO DE PROGRAMA 



COMPILADOR 



CODIGO DE MAQUINA - 



PROGRAMA 
► RESULTANTE 



Figura 1: Un intérprete lee el texto del 
programa y lo lleva a Instrucciones de 
programa. 



Sin embargo, esto ha sido siem- 
pre un problema. Con los prime- 
ros ordenadores había que tener 
en cuenta qué combinación de 
ceros y unos pertenecían a qué ins- 
trucción. Por este motivo, los pro- 
gramadores, cansados de preo- 
cuparse sobre este gran inconve- 
niente, han creado sistemas de 
codificación para grabar instruc- 
ciones. Estos sistemas de codifi- 
cación son los llamados lenguajes 
ensambladores. Una orden, para 
añadir un número en el lugar X de 
la memoria, se puede escribir de 
la forma siguiente: 

ADD R1, X 

Los programas que traducen 
estas simples nociones a equiva- 
lentes de instrucciones en lengua- 
je máquina son llamados ensam- 
bladores. 

Por ejemplo, si se quiere realizar 
un programa ensamblador que 



permita añadir lo que exista en el 
registro Y al registro X, habría que 
hacerlo de la forma siguiente: 

LOAD R1, X ¡cargar contenido 
de X a R1. 
ADD R1 , Y ;sumar contenido de 

Y. 

STO X, R1 ¡almacenar resultado 
en X. 
HALT ¡stop. 

Los lenguajes ensambladores 
son llamados de bajo nivel porque 
están muy cercanos al lenguaje 
original de máquina; cada instruc- 
ción en lenguaje ensamblador se 
traduce directamente a órdenes 
en lenguaje máquina. Aún con la 
notación de lenguaje ensambla- 
dor, sigue siendo bastante difícil 
saber lo que está pasando en la 
máquina echando una simple 
ojeada. 

Entonces ¿por qué no comuni- 
carse con la máquina en lenguaje 
corriente? Dado que todo idioma 
está lleno de complejas irregulari- 
dades y múltiples posibilidades de 
interpretación, es muy difícil tradu- 
cir a un lenguaje accesible para el 
ordenador. Pero los ordenadores 
dieron con un compromiso entre 
el dioma corriente y el lenguaje 
ensamblador: el lenguaje de alto 
nivel. 

Lenguaje como el PASCAL, 
FORTRAN y BASIC son de alto ni- 
vel. Pese a que no son exactamen- 
te el idioma corriente, concretan 
más información de lo que logra 
habitualmente el lenguaje ensam- 
blador. En un lenguaje de alto ni- 
vel, un programa para sumar dos 
números puede ser escrito de la 
forma siguiente: 

X = X + Y. 
END 

Desafortunadamente, el orde- 
nador no acepta un texto seme- 
jante. Hay que tener en cuenta, 
que todo lo que sabe el ordenador 



son las instrucciones propias del 
lenguaje máquina, por este motivo 
cualquier programa que se intro- 
duzca tendrá que ser traducido a 
su idioma. Lo que necesitamos es 
un programa de ordenador que 
contemple la transición del len- 
guaje de alto nivel al código má- 
quina, de bajo nivel. Esto pueden 
hacerlo cuatro tipos de progra- 
mas, pero cada uno de ellos utiliza 
una aproximación diferente para 
realizar la tarea. Estos cuatro pro- 
gramas son: intérpretes, seudo- 
compiladores, seudocompilado- 
res increméntales y compiladores. 



Intérpretes 

El intérprete toma el material 
en bruto ASCII de caracteres y, a 
medida que va leyendo el texto, 
ejecuta inmediatamente las órde- 
nes que le da el código. Si en los 
caracteres se lee PRINT X, busca 
en su memoria el significado de la 
instrucción PRINT e imprime el va- 
lor almacenado en la posición X. 



TEXTO DE PROGRAMA 



INTERPRETE 



rs te PROGRAMA 
V7" RESULTANTE 



Figura 2: Un seudocompllador primero 
traslada un programa a código 
Intermedio; entonces lee y ejecuta el 
código intermedio. 



En cuanto encuentra una orden 
completa para ejecutar, realiza la 
acción especificada. Aún cuando 
el mismo intérprete está escrito en 
lenguaje máquina, no logra con- 
vertir el programa de alto nivel en 
instrucciones de máquina. En 
cambio, lee en el programa y eje- 
cuta sus instrucciones de acuerdo 



10 MSX 



\ 



CARACTERES ASC11 



Se traduce en: 



s 



96 



PRINT 
VARIABLE 



LOCALIZACION 
DE X 



FINAL DE 
SENTENCIA 



Figura 3: Los tokens sustituyen a las 
palabras claves y a las variables. 



al vocabulario de palabras clave 
existentes en el intérprete. Con es- 
ta aproximación, sin embargo, el 
intérprete debe perder tiempo en 
leer y traducir el texto. En conse- 
cuencia, los intérpretes son lentos. 
Por otra parte, al traducir progra- 
mas según se va introduciendo, 
el intérprete no tiene que perder 
varios minutos traduciendo el pro- 
grama a códigp máquina antes de 
ejecutarlo. 



Seudocompiladores 

Una manera de apresurar el 
proceso de traducción es «predi- 
gerir» el programa antes de co- 
menzar a ejecutarlo. Esto es exac- 
tamente lo que hace el seudo- 
compilador (ver figura 2). 



Antes de llevar a cabo la ejecu- 
ción de un programa, la primera 
mitad de un seudocompilador lo 
k recorre y va traduciéndolo a valo- 
res de uno o dos bytes llamados 
tokens. Muchos de estos tokens 
obedecen a diferentes palabras 
clave en el programa (estos valo- 
res son distintos según el BASIC). 
Un valor, 24 puede obedecer a 
PRINT, 34 a STOP, etc. (en el caso 
del BASIC de Microsoft, todos los 
tokens, sean del ordenador que 
sea, son los mismos). 

Una variable puede ser almace- 
nada como token, seguida de un 
número entero que indique la lo- 
calización en la memoria. Todos 
los espacios, retorno de carro y 
comentarios en el programa se 
suprimen porque el ordenador no 
tiene ningún tipo de relación con 
ellos. Lo que originariamente era: 
(ver figura 3). 

Los valores tokens que com- 
prenden las sentencias resumidas 
del programa son llamados seu- 
docódigos o códigos intermedios. 
El lenguaje de programación PAS- 
CAL se maneja habitualmente con 
seudocompilador. 

Una vez traducido el programa 
a seudocódigo, queda listo y eje- 
cutado por la segunda mitad del 
seudocompilador, el intérprete de 
seudocódigo. 

A diferencia de un intérprete, el 
seudocompilador no tiene que tra- 
ducir cada vez una orden. Dado 
que el programa ha sido reducido 
a series de tokens de 1 byte, el seu- 
docompilador simplemente lee en 
un byte y va a ejecutar esa acción. 
Esto permite al programa que fun- 
ciona por seudocompilador, eje- 
cutar mucho más rápidamente 
que uno que funciona por intér- 
prete. 

El mayor inconveniente de esta 
técnica reside en que, antes de 
que pueda funcionar el seudo- 




El BASIC, el más 
popular de los 
lenguajes de 
programación es, a su 
vez, el más lento. 



compilador, debe parar y traducir 
el programa a un código interme- 
dio. Es un proceso rápido: la 
mayor parte de los programas pe- 
queños tardan entre 10 y 15 se- 
gundos en completar el procedi- 
miento. Sin embargo, este produ- 
ce un lapso significativo entre el 
momento en que se le dice al or- 
denador que ejecute el programa 
y el momento en que comienza a 
hacerlo (algunos sistemas permi- 



TEXTO DE PROGRAMA 



SEUDOCOMPILADOR 



CODIGO INTERMEDIO 



SEUDOCOMPILADOR 
INCREMEWTAL 



PROGRAMA 
RESULTANTE 



Figura 4: Un compilador convierte un 
programa en código máquina. Este 
puede ser ejecutado directamente. 



MSX 11 



en portada 



ten almacenar el código de inme- 
diato para uso repetido, pero tam- 
bién en ese caso hay que esperar 
por la retraducción cada vez que 
se produce una modificación en el 
programa). Además, aún cuando 
traducir el código inmediato es 
más rápido que traducir texto de- 
secho, sigue siendo un proceso 
demasiado lento dado que los 
programas seudocompilados son 
unas diez veces más rápidos que 
los traducidos. 



Seudocompiladores 
increméntales 

Es aburrido tener que esperar 
aunque sólo sean unos pocos se- 
gundos para que seudocompile 
un programa. Para solucionarlo, 
los diseñadores de lenguajes die- 
ron con el seudocompilador incre- 
mental (IPC). Con un IPC, el editor 
de texto en que escriba su progra- 
ma, está fusionado con el seudo- 
compilador. A medida que teclea 
un programa, el IPC sigue lo que 
se está tecleando. Y al presionar el 




retorno del carro (CR), el IPC inme- 
diatamente traduce a seudocódi- 
go la línea que se acaba de redac- 
tar y la almacena. Porque sólo tra- 
duce una línea por vez, el proceso 
no lleva más de unas milésimas 
de segundo. Es tan rápido que ni 
se percibe que algo haya pasado. 
El IPC puede o no mantener una 
copia de la línea en su redacción 
original. 

Dado que la mayor parte de la 
seudocompilación ya ha sido lle- 
vada a cabo antes de que el pro- 
grama se ejecute, un IPC puede 
comenzar con la ejecución del 
programa casi cuando se teclea 
RUN. El IPC puede realizar algu- 
nas tareas antes de comenzar, pe- 
ro no provoca ninguna demora 
evidente. 

Al igual que un seudocompila- 
dor normal, un IPC va mucho más 
rápido que un intérprete porque el 
volumen de la labor de traducción 
se completa mucho antes de que 
el programa comience a ser eje- 
cutado. Pero el IPC tiende a funcio- 
nar con lentitud significativamente 
mayor que los seudocompilado- 
res no increméntales, porque la 
mayor parte está diseñada para 
producir un código intermedio 
compacto. 

Los sistemas BASIC son gene- 
ralmente escritos como IPC El in- 
térprete BASIC de Microsoft es 
realmente un IPC De hecho, la 
mayoría de los sistemas a los que 
se hace referencia como intérpre- 
tes son en la actualidad IPC Los 
verdaderos intérpretes son tan 
lentos que muy pocas veces se 
emplean. 

Compiladores 

Un verdadero compilador toma 
el texto inicial ASCII de su progra- 
ma y lo traduce a código máquina, 
y no sólo a un código intermedio 




(ver figura 3). Hace con un lengua- 
je de alto nivel lo que un ensam- 
blador hace con el lenguaje de 
ensamblaje. Cuando se le dan 
instrucciones a un ordenador para 
un programa que ha sido compi- 
lado, debe saltar al comienzo del 



W1LLGLM: 




12 MSX 



I 



código máquina y empezar a eje- 
cutar. Porque no es necesaria nin- 
guna traducción, el programa 
puede transcurrir con mucha velo- 
cidad, hasta 500 veces más rápi- 1 
do que un programa interpretado. 

Desgraciadamente, traducir un 
programa de lenguaje de alto ni- 
vel a código máquina es compli- 
cado y muy lento. Al ejecutar cien- 
tos de instrucciones por segun- 
dos, el ordenador emplea varios 
minutos para traducir un progra- 
ma corto. Una vez completada la 
traducción, sin embargo, es nece- 
sario hacerlo otra vez. Una vez 
compilado el programa, puede 
cargarlo y ejecutarlo cuantas ve- 
ces quiera, sin demoras. Es evi- 
dente que existen opciones. Se 
pueden llevar programas con in- 
térpretes, con un seudocompila- 
dor o con un verdadero compila- 
dor. Si se usa un intérprete, la solu- 
ción será rápida pero el programa 
se desarrollará más lentamente. Si 
se usa un compilador, el progra- 
ma se desarrollará a mayor veloci- 






dad, pero cada vez que sea nece- 
sario efectuar una modificación 
habrá que darle casi tres minutos 
de tiempo al compilador. Si se usa 
un seudocompilador, se logra un 
compromiso entre la velocidad y 
la conveniencia. 

¿Qué es mejor? ¿Un intérprete o 
un compilador? Todo depende 
del uso que quiera dársele. 

Para decidir el tipo de traductor 
que debe elegirse, hay que pensar 
en el trabajo a realizar. Si es un 
problema rápido, puede ser prefe- 
rible un intérprete. Seguramente 
resultará más conveniente escribir 
un programa con intérprete que 
con compilador: pueden corregir- 
se errores y volver a pasar el pro- 
grama de inmediato. Si se va a pa- 
sar una sola vez el programa, o a 
lo sumo dos veces, ¿a quién le im- 
porta demorar cinco minutos más 
en pasarlo? 

De todos modos, si se está tra- 
bajando en un problema que re- 
quiere cada una de las fracciones 
de velocidad que puede rendir el 
ordenador, habrá que usar un com- 
pilador, que es también la elec- 
ción correcta si se va a volver a pa- 
sar el programa una y otra vez, sin 
hacerle modificaciones. Cuando 
un programa está en su forma de- 
finitiva, tiene mucho sentido alma- 
cenarlo permanentemente. 

Hay muchas situaciones en las 
que un buen compromiso entre 
compilador e intérprete consiste 
en desarrollar los programas con 
el segundo, para luego, una vez 
completados, pasados a limpio y 
funcionando satisfactoriamente, 
compilarlos para su rápida ejecu- 
ción. 

En la práctica, no habrá necesi- 
dad de elegir el tipo de traductor a 
utilizar. El oropio sistema tendrá un 
intérpreU o un compilador para el 
lenguaje que trabaje, aunque rara 
vez tendrá ambas cosas. 




Existen cuatro tipo de 

transcriptores; 

intérpretes, 

seudocompiladores, 

seudocompiladores 

increméntales y 

compiladores. 



Conclusión 

La mayoría de la veces, los dise- 
ñadores de lenguaje han hecho 
del BASIC un intérprete, del PAS- 
CAL un seudocompilador y de 
FORTRAM un auténtico compila- 
dor. Así, los programas en BASIC 
se ejecutan con ritmo bastante 
más lento que los escritos en otros 
lenguajes de alto nivel. No hay ra- 
zón alguna para que estos len- 
guajes tengan que usar el tipo de 
traductores que usan. Podríamos 
tener un seudocompilador para 
BASIC, un compilador para PAS- 
CAL y un intérprete para FOR- 
TRAN. Es tonto comparar la veloci- 
dad de un lenguaje con la de otro, 
puesto que en gran parte la veloci- 
dad está determinada por el tipo 
de traductor que se use. 

Dado que el BASIC se interpreta 
normalmente para propósitos 
prácticos, un programa BASIC irá 
más lento que uno en FORTRAN o 
en PASCAL Pero recordemos, 
una vez más, que no se trata de 
una falta del BASIC Cuando se 
elige un lenguaje interpretado, se 
está cambiando la velocidad por 
conveniencia. 



MSX 13 




Título: MSX. El Manual 

Escolar 

Autor: Voss 

Editorial: Ferré Moret, S. A. 
Páginas: 379 

De todos es conocida la utilidac 
de los ordenadores para eliminar 
extraterrestres o recorrer compli- 
cados laberintos. Pero existen otrc 
tipo de aplicaciones para las que 
el ordenador es igualmente válido. 
Una de estas aplicaciones es la 
educación. 

El Manual Escolar, es un libro 
escrito para los alumnos de los úl- 
timos cursos de EGB y BUP, y 
contiene gran cantidad de progra- 
mas que hacen que el estudio de 
determinadas materias, resulte 
una tarea más fácil, constructiva y 
amena. 

Las materias tratadas en el libro 
son bastante variadas, dedicando 
un capítulo a cada tema específi- 
co, que son los siguientes: Mate- 
máticas, Química, Física, Idiomas, 
Biología/Ecología, Contaminación 
ambiental, Geografía/Historia, 
Economía y Matemáticas II. Como 
se puede apreciar, los temas son 
muy variados y entretenidos, y 
ayudan a enfocar cualquier tipo de 
problema hacia el ordenador. 

El libro comienza con un rápido 
repaso a las características del 
BASIC y a las instrucciones más 
empleadas. En capítulos posterio- 



L 

res se incluye el repaso a otras 
instrucciones menos utilizadas 
pero necesarias en algunas oca- 
siones. Los capítulos empiezan 
dando una descripción previa del 
problema y finalizan con el pro- 
grama en cuestión, todos los pro- 
gramas están descritos de una for- 



r 











MSX 

EL MANUAL 
ESCOLAR 






UN LIBRO DATA BECKEfí 






nnAoo *om muta womwt. u 

i 







ma muy completa, siguiendo una 
estructura similar en todos los ca- 
sos: 

1. Presentación del problema, 

2. análisis del problema. 

3. diagrama de flujo, 

4. codificación del programa, 

5. descripción del programa y 
variables utilizadas, y 

6. obtención de resultados. 
Por otra parte, ninguno de los 

programas resulta excesivamente 



largo, por lo que se disminuyen las 
posibilidades de cometer errores 
al introducirlos, además de facilitar 
al máximo su comprensión. 

Resulta un libro adecuado para 
todos los estudiantes, a quienes 
no les gusta demasiado pasarse 
las horas delante de un libro y 
quieren darle una utilidad práctica 
a su ordenador. 

Título: LOGO de la tortuga 
a la inteligencia artificial 
Autor: Luis Rodríguez- 
Roselló 

Editorial: Vector Ediciones 
Páginas: 581 

Es indudable que existe un inte- 
rés creciente en todo el mundo 
por el lenguaje LOGO. Podría de- 
cirse que se trata de un fenómeno 
sociológico más que de un lengua- 
je de ordenador. Existen publica- 
ciones periódicas dedicadas en 
exclusiva a este lenguaje, congre- 
sos dedicados íntegramente a LO- 
GO, asociaciones de usuarios en 
muchos países, etc. A pesar de 
que todo el mundo hable de él, 
LOGO sigue siendo un gran des- 
conocido, y la idea más generali- 
zada sobre el mismo es que es un 
lenguaje para niños. 

La incorporación de la informá- 
tica a la enseñanza es un hecho 
imparable, y se diría que en la ac- 
tualidad, es un fenómeno crítico 
en nuestro país. Es, por tanto, el 
momento idóneo para iniciar una 
reflexión que permita conocer a 
fondo LOGO, tanto desde un pun- 
to de vista informático, como de su 
filosofía educativa y sus posibilida- 
des reales en la enseñanza. Este 
es el objetivo primordial que se 
propone el presente libro. 

El enfoque dado a esta obra 
proporciona una visión general 
del LOGO sin centrarse en ningún 
dialecto concreto, procurando uti- 



14 MSX 



lizar aquellas primitivas que son 
comunes a la mayoría de las ver- 
siones del lenguaje, y haciendo 
hincapié sobre todo en las estruc- 
turas de los programas, alejándo- 
se de un enfoque de tipo «ma- 
nual» para un ordenador concreto. 
El autor ha planteado acertada- 
mente el libro, suponiendo que el 
lector ignora todo sobre este len- 
guaje, por lo cual comienza tratan- 
do los aspectos generales de ésta, 
su pedagogía asociada y su rela- 
ción con el mundo de la informáti- 
ca en la educación. 

A continuación comienza el 
aprendizaje concreto del lengua- 
je; se presentan los procedimien- 
tos incorporados, las entradas que 
necesitan estos procedimientos, 
la posibilidad de definir procedi- 
mientos el usuario, las variables, 



las listas, el control del editor y la 
sintaxis. 

El siguiente capítulo nos intro- 



LOGO 



DE LA TORTUGA A LA 
INTELIGENCIA ARTIFICIAL 




duce en la parte del LOGO más 
conocida, y quizá la más especta- 
cular: los gráficos de tortuga. 
Aprendemos las instrucciones 
que permiten subir y bajar la plu- 
ma, mostrar y esconder la tortuga, 
situarla en coordenadas cartesia- 
nas, orientarla. También, abundan 
los ejemplos de cómo utilizarla, 
cómo por ejemplo, una serie de 
procedimientos para dibujar va- 
rios tipos* de espirales utilizando 
un proceso recursivo. 

Los gráficos de tortuga nos ser- 
virán también para comprender la 
mejor cualidad del lenguaje LO- 
GO: la programación modular. 
Una serie de ejemplos nos mues- 
tran cómo diseñar módulos que 
realizan cada uno un dibujo, y lue- 
go combinarlos de forma que se 
interrelacionen. 




disponemos de 

TAPAS ESPECIALES 

para sus ejemplares 




SIN NECESIDAD DE ENCUADERNACION 

b50p¡2i 



Para hacer su pedido, rellene este cupón HOY MISMO 

y envíelo a: MSX MAGAZINE 
Bravo Murillo, 377 Tel.: 733 79 69 - 28020 MADRID 



(en cada tomo se pueden encuadernar 6 números) 



Ruego me envíen tapas para la encuademación de mis ejemplares de 
MSX MAGAZINE. al precio de 650 pts más gastos de envío. 
El importe lo abonaré 

□ POR CHEQUE □ CONTRA REEMBOLSO □ CON MI TRAJETA DE 
CREDITO □ AMERICAN EXPRESS □ VISA □ INTERBANK 

Número de mi tarjeta: 

Fecha de caducidad Firma 

NOMBRE 



DIRECCION 



CIUDAD c. P 

PROVINCIA 



J 



SOFTWARE 



Programa: North Sea 

Helicopter 

Tipo: Juego 

Distribuidor: Datamarket 
Formato: Cassette 



Los simuladores de vuelo son, a 
veces, algo más que un simple 
juego. Este es un claro exponente 
de que la simulación, tiene como 
fin ayudar al aprendizaje, ya sea 
de vuelo en Helicóptero (como en 
este caso), o en avión, etc. 

Sin embargo, no todo iba a ser 
volar, ya que, en North Sea Heli- 
copter, se cuenta con el aliciente 




adicional de que a la vez que se 
intenta volar hay que rescatar a 
unos hombres que han sido arro- 
jados al temible Mar del Norte por 
la tempestad. 

Tu copiloto dará las coordena- 
das en donde se encuentra el úni- 
co superviviente del desastre ocu- 
rrido en una plataforma petrolífera. 
Pero para cerciorarte de ello, pul- 
sando la «M» aparecerá el mapa 
de la zona, donde se mostrarán la 
plataforma petrolífera, la base de 
tierra, el helicóptero y el hombre a 
salvar. Pulsando de nuevo la «M» 
se vuelve a la pantalla principal, 
que es la cabina del piloto. Desde 
aquí se pueden ver todos los con- 
troles y relojes que posee el apa- 
rato y que tendrás que dominar a 
la perfección para realizar un vue- 
lo perfecto. 

Desplázate hacia el lugar lo más 
rápidamente posible, pero con 
cuidado, ya que el tiempo se irá 
complicando bastante y llegará a 
ser de auténtica tempestad. 

Tendrás que maniobrar de tal 
forma para acabar justo encima 
de él, que creerás hacer un autén- 
tico vuelo en helicóptero. Una vez 
situado encima, pulsando la «R» 





guir para conseguir volar. La 
fección sólo se consigue con 
práctica. 

se bajará una cuerda e izaremos 
el hombre a bordo. Esto sólo ocu- 
rrirá cuando nos encontremos en 
el lugar apropiado. 

Desde el despegue, hasta el 
vuelo nocturno (con posibilidad 
de volar por infrarrojos), todo está 
pensado para lograr el máximo 
realismo, desde el sonido hasta la 
voz del copiloto, algo que pode- 
mos testimoniar es el mejor con- 
seguido de todos los simuladores 
de vuelo que hemos visto. 

El atractivo del juego es la nece- 
sidad de utilizar al menos un joys- 
tick, puesto que, como buen heli- 
cóptero necesita de dos mandos 
para ser maniobrado. El que tenga 
uno, tendrá que conectarlo en el 
port 1 de joystick y usar las teclas 
del cursor como joystick adicional. 

Cada uno tiene una función es- 
pecífica, por lo que, si no tiene 
joystick será difícil jugar con él. 
• Las instrucciones son comple- 
tas e indican todos los pasos a se- 

I Puntuación: 
Presentación: 8 
Rapidez: 8 
Claridad: 9 
Adicción: 9 




w . hCF'TF ízEÍ- 
- HELICCFTEF 



16 MSX 




Programa: Flight Deck 
Tipo: Juego 

Distribuidor: Datamarket 
Formato: Cassette 



Los incidentes del Golfo de Si- 
dra se pueden plasmar en este 
programa directamente, donde la 
flota americana atacó Libia. 

Es esta ocasión, tú estás al man- 
do de un portaaviones situado 
cerca de una isla donde tienen su 
cuartel general unos terroristas. Tu 
misión consiste en desmantelar y 
destruir sus bases antes de que 
acabe el tiempo y sean ellos quien 
ataquen. 

Hay tres pantallas diferentes. 
Con «F1» nos encontramos en el 
portaaviones, donde podremos 
controlar los aviones que tene- 
mos, la velocidad y dirección del 
barco y el radar de corto alcance. 
La tecla «F2» nos da el mapa, en el 
que veremos la posición relativa 



del barco y los aviones con res- 
pecto a la isla y el combustible de 
los aviones en vuelo; y «F3» nos 
da una imagen de la isla y del 
combustible de los aviones. 

En el portaaviones, posees 1 0 ti- 
pos de aviones, entre cazas, bom- 
barderos y aviones de reconoci- 
miento. Con los cazas has de de- 
rribar cuantos aviones enemigos 
aparezcan en la isla. Con los avio- 
nes de reconocimiento tendrás 
que fotografiar la isla completa pa- 
ra descubrir las bases escondidas 
y con los bombarderos tienes que 
destruir sus bases y escondites. La 
puntuación se realiza en base al 
número de aviones que te que- 
dan, la cantidad de isla fotografia- 
da y en tu habilidad para destruir 
cazas enemigos y aterrizar en el 
portaaviones. 

Todo esto suena sencillo y fácil, 
pero nada más lejos de la reali- 
dad. Para empezar has de contro- 
lar el barco y situarlo de forma que 
el viento no cruce la cubierta de 
despegue, pues esto resulta fatal 
para los aviones. Con las teclas 
del cursor arriba/abajo, controla- 




remos la velocidad del portaavio- 
nes, y con las teclas derecha/iz- 
quierda, el desplazamiento del 
barco. Pero ¡cuidado!, si te acer- 
cas demasiado a la isla, los avio- 
nes enemigos atacarán al barco 
hasta que lo hundan o hasta que 
salgas de la zona peligrosa que 
rodea la isla. De todas formas, con 
tus cazas podrás contrarrestar el 
ataque. 

Una vez situado el barco en el 
lugar ideal, elige el tipo de avión 
que quieres utilizar. Esto se hace 
sacando uno a uno del hangar y 
trasladándolo con el tractor hacia 
uno de los tres lugares existentes 
en la cubierta o bajándolos me- 
diante el ascensor para colocarlos 
a la cola, ya que los diez aviones 
están en una fila en hangares su- 
cesivos. Cuando uno sale a fum- 
plir una misión, el resto de los 
aviones se desplazan hacia el lu- 
gar libre. De esta forma, el avión 
que está en vuelo, si consigue ate- 
rrizar (maniobra ciertamente peli- 
grosa y difícil) se sitúa al final de la 
fila y espera su turno. 

El tractor y los aviones en vuelo 
se controlan con joystick. El des- 
pegue y el aterrizaje requieren ha- 
bilidad y mucha práctica. De ma- 
nera que no os preocupéis si al 
principio no sale bien. 

Puntuación: 
Presentación: 9 
Rapidez: 8 
Claridad: 8 
Adicción: 8 



MSX 17 



SOFTWARE 



Programa: Beamrider 
Distribuidor: Proein, S.A 
Tipo: Juego 
Formato: Cassette 



Un nuevo tipo de juegos espa- 
ciales está apareciendo. El espa- 
cio sideral se ha quedado atrás, 
las luchas más despiadadas ocu- 
rren en olvidadas Galaxias perdi- 
das y entre los más extraños seres, 
pero vivamos en un lugar u otro, 
seamos guerreros o contraban- 
distas, siempre seremos atacados 
porque estamos en la Era de la su- 
pervivencia. 

Beamrider hará que te encuen- 
tres en una estación espacial, de 
la que estás a punto de salir por- 
que una peligrosa misión va a co- 
menzar. Contarás con toda clase 
de armas sofisticadas, como un 
rayo láser que fulminará a tus ad- 
versarios y torpedos que utilizarás 
en caso de encontrarte una fotale- 
za o nave enemiga, objetivo de tu 
misión. 

Pero a parte de esto —que te 
proporcionará una gran puntua- 
ción- debes exterminar todas las 
naves enemigas que encuentres a 
tu paso. 

Velocidad de reacción será una 
de tus grandes armas a la hora de 
destruir a tu enemigo, pero que no 
te sirva de descuido, ya que exis- 
ten objetos inmóviles que se estre- 
llarán contigo si no controlas bien 
tu nave. 

Irás avanzando en sectores pla- 
netarios cada vez que consigas 
batir a quince platillos voladores 
blancos, así irás consiguiendo 
puntos y podrás acceder a destruir 
la nave nodriza, pero sólo podrás 



atacarla con un torpedo, así que 
no los desperdicies. 

A primera vista el juego se co- 
rresponde en todas sus facetas a 
los característicos juegos de mar- 
cianitos, pero también debemos 
darnos cuenta que el espacio es 
siempre del mismo color. Las dife- 
rencias de este juego no se en- 
cuentran en el tema, ni en su eje- 
cución, sino en la realización, tanto 
gráfica como en sonido. 

Beamrider parte de una nave 
nodriza en la que podemos decre- 
tar nuestra hora de despegue, las 
compuertas se abrirán, acompa- 
ñadas de un potente sonido, que 
nos anuncia la hora de la batalla, 
sirve tanto para alertarnos como 
para concentrarnos. La supervi- 
vencia a comenzado, nuestro ra- 
dar empieza a detectar intrusos, 
las coordenadas de posición nos 
serán dadas gracias a la nueva 
concepción del espacio. Una 
perspectiva creada hacia el infinito 



^^^^^^^^^^^ 


66^ 




1 




Sdptor O 2 


GO! 


1 



por unas rayas fluorescentes y la 
continua sucesión de horizontales 
hacia nosotros, hace que la veloci- 
dad y el acercamiento a las naves 
enemigas se proyecten sin darnos 
cuenta, en una distracción más 
que agilizará en gran medida 
nuestros reflejos. 

Platillos, naves, rastreadores, 
minas y escombros serán los ob- 
jetos de destrucción que constan- 
temente nos har^n perder la pa- 
ciencia, pero recuerda la ley de la 
supervivencia «matar para que no 




te maten», aunque esto no será 
necesario porque, a diferencia de 
otros juegos, si ves que pierdes tu 
concentracióm y no puedes se- 
guir, puedes pulsar el cero y ob- 
tendrás una tregua. 

Otra característica a destacar 
del juego es la posibilidad de dejar 
de jugar en una partida de tres o 
más jugadores, sin tener que dejar 
de jugar estos, cuando sea tu tur- 
no y decidas retirarte pulsa el nú- 
mero cinco y tu aventura habrá fi- 
nalizado. 

Una advertencia: en los secto- 
res más altos, como puede ser el 
1 0, no te dará tiempo a fijarte en si 
has conseguido destruir las naves 
que aparecen a tu encuentro, por 
eso debes aprender a guiarte del 
sonido y los cambios de color de 
tu pantalla, sin duda pasarás mo- 
mentos de tensión, pero tienes 
una misión que cumplir, ¡adelante! 

Puntuación: 
Presentación: 8 
Claridad: 6 
Rapidez: 7 
Adicción: 7 



18 MSX 




Programa: Gráficas de 
Gestión 

Distribuidor: Idealogic 
Tipo: Aplicación 
Formato: Cassette 



Este programa ha sido realiza- 
do para que Ud. pueda «ver» en 
forma gráfica los resultados de su 
gestión, sus cuentas o sus cálcu- 
los. 

Es necesario para realizar una 
buena gestión, conocer desde el 
principio todos los datos con los 
que cuenta a la hora de preparar 
un informe o tomar una decisión. 
Seguir un detallado estudio sobre 
las posibilidades, aumentos o dis- 
minuciones en un determinado 
período, es la base de un acertado 
comportamiento ante los cambios 



eventuales que puede sufrir una 
economía, un producto e incluso 
una persona (pirámides poblacio- 
nales). 

La estadística siempre ha sido 
una ciencia que se ha visto un po- 
co devaluada en sus posibilida- 
des, porque se basa en probabili- 
dades, pero de todos es sabido 
que a la hora de tomar una deci- 
sión o efectuar un cambio, la es- 
tadística marca la pauta a seguir 
en el comportamiento del fenóme- 
no. 

Gráficas de gestión es un pro- 
grama para nuestro gusto muy re- 
cortado, porque el primer requisito 
que se espera al contemplar un 
gráfico de gestión es la singulari- 
zación en un golpe de vista la si- 
tuación financiera de una empre- 
sa o el desarrollo obtenido a lo lar- 
go de un período. 

Para estos requisitos nuestro 
programa está suficientemente 
capacitado, pero no cuenta con lo 
que podríamos llamar memoria, 
algo totalmente necesario para 
poder comparar gráficos, es decir, 
si quisiéramos observar la trayec- 
toria económica de dos bienes 
complementarios al mismo tiem- 
po, no podríamos, pues tendría- 
mos que verlos individualmente. 

Vamos a hacer referencia a los 
apartados con los que cuenta y 
comentarlos uno por uno: Entrada 
de datos. Aquí se le permite definir 
3 columnas con 1 2 datos por cada 
una de ellas, bien por meses o nu- 
merados del 1 al 12. 

Modificaciones y Listado. Le 
permite modificar (datos o título), 
además de introducir nuevos da- 
tos e imprimir. 

Rotulación. Permite nominar a 
sus gráficas, ejes (x e y) y el perío- 
do de trabajo. 

Gráficas de barras, lineal y cir- 
cular. Estos son tres apartados di- 
ferentes para elegir el método más 




cómodo de representación. En es- 
tos apartados podemos hacer no- 
tar la falta de color en la gráfica de 
sectores, ya que los tanto por cien- 
to quedan bien delimitados, pero- 
sería mejor si a cada dato se le hu- 
biera designado un color. Sería 
más inmediata la observación. 

Grabación y Lectura. Esta op- 
ción se subdivide a su vez en va- 
rías posibilidades de obtención de 
listados o almacenamiento en 
cassette. 

En el segundo apartado de Lec- 
tura, debe saber que una vez leido 
el fichero, si opta por introducir 
nuevos datos, los anteriores desa- 
parecen. 

Códigos de impresora. Aquí se 
le permite definir la densidad gráfi- 
ca «tamaño», de la gráfica a impri- 
mir. Si Ud. posee una impresora 
para tratamiento de pantallas grá- 
ficas, cambiando el código podrá 
obtener, Bit Image Graphis, pa- 
sando de la simple resolución a la 
pantalla gráfica de mayor resolu- 
ción. 

Notas complementarias, el edi- 
tor le facilitará en todo momento lo 
que debe realizar, siga sus ins- 
trucciones. Una advertencia: nun- 
ca pulse la opción Impresora ya 
que perdería el control sobre el l 
programa si no está conectada 
ésta. 

Es un programa para realizar 
gráficas a nivel muy personal y so- 
bre temas muy individuales, pues- 
to que si las gráficas se quieren 
elaborar como datos finales, hay 
que hacer un estudio previo en el 
que se reflejen claramente los da- 
tos de estudio muy sintetizada- 
mente. 

Con esto no queremos desvir- 
tualizar la propiedades del progra- 
ma, sino simplemente hacerle sa- 
ber sus posibilidades. 

J 



MSX 19 



Programas 

Sony MSX, para lo que 
guste ordenar. 




EDUCATIVOS 




HIT 3IT 




SOFTWARE 




PROGRAMAS SONY MSX 



Educativos 



Monkey Academy 
Alfamat 
Viaje Espacial 
Multipuzzle 
Noria de Números 
Corro de Formas 
Coconuts 
Yo Calculo 
Selva de Letras 
El Cubo 
Informático 
Electro-graf 
El Rancho 
Teclas Divertidas 
Boing Boning 
Compulandia 
Mil Caras 
Logo 

Países Mundo- 
Países Mundo- 
Tutor 

Computador 
Adivino 

Aprend. Inglés-l 
Aprend. lnglés-2 
Cosmos 
Curso de Básic 
Juego de 
Números 



-1 
-2 



Juegos 



Antártic Adventure 
Athletic Land 
Sparkie 
Juno First 
Car Jamboree 
Battle Cross 
Crazy Train 
Mouser 

Computer Billiards 
Alí Babá 
Track & Field-I 
Track & Field-ll 
Dorodon 
Chess (Ajedrez) 
Senjo 
E.I. 

Lode Runner 
Super Tennis 



• Backgammon 

• Super Golf 

• Hustler 

• Binary Land 

• Driller Tanks 

• Stop the Express 

• Ninja 

• Les Flics 

• La Pulga 

• The Snowman 
•Cubit 

• Pack 16K 

• Fútbol 

• Kung Fu 
•Batalla Tanques 

• Mr. Wong 
•Xixolog 

• Buggy 

• Sweet Acorn 

• Peetan 

. JumpCoaster 

• Buggy 84 

• 3D Water Driver 

• Pinky Chase 

• Wedding Bells 

• Fightting Rider 

Aplicación 

. Memoria Ram 4 K 

• Creative 
Greetings 

• CharacterCollect 

• Quinielas y 
Reducciones 

• Pascal 

• Ensamblador 

• Generador Juegos 

Gestión 

• Hoja de Cálculo 

• Homewriter 

• Control Stocks 

• Contabilidad 
Personal 

• Ficheros 

• Procesador 
de Textos 

• Control Stocks 

• Vencimientos 

• Contabilidad 
1.500 



Programa: Confused? 
Tipo: Juego 

Distribuidor: Datamarket 
Formato: Cassette 



Los rompecabezas siempre ha 
sido la forma de entretenimiento 
más popular. ¿Quién no ha resule- 
to, al menos una vez, un puzzle? 
Los hay de mayor o menor dificul- 




MSX 21 



SOFTWARE 



tad, así como de mayor o menor 
número de piezas. Estos puzzles 
presentaban un problema de es- 
pacio bastante importante, si eran 
muy grandes había que ponerlos 
en una mesa o en una gran tabla 
para acabarlos. 

Esto ya no es problema cuando 
se trata de utilizar el ordenador. 
Además, este programa es el pri- 
mero en su especie para resolver 
rompecabezas. 

En la pantalla aparecen dos 
ventanas y un menú con las distin- 
tas opciones. En la ventana dere- 
cha, resolveremos el rompecabe- 
zas y en la izquierda, bajo el logo 
del juego se esconde el dibujo ori- 
ginal que hay que realizar. 

Contamos con la posibilidad de 
escoger entre diez dibujos distin- 
tos, así como la dificultad del dibu- 
jo en cuestión. Si se escoge el más 
pequeño (muy sencillo de resol- 
ver) que es 2 x 2, el dibujo se divi- 
dirá en cuatro partes que tendrá 
que colorar en el orden adecuado 
en el menor tiempo posible y 
siempre antes de que se te acabe, 
puesto que a mayor dificultad, 
mayor es el tiempo que tienes pa- 
ra resolverlo. 

Las piezas del puzzle se mueven 
con la ayuda de las teclas del cur- 
sor y la barra espadadora o un 
joystick. Con ellos se cogen las 
piezas y se van situando en los lu- 
gares adecuados. Si lo ha hecho 
bien, es decir, si ha acertado la si- 
tuación y la pieza al completar el 
puzzle sonará una musiquilla y 
aparecerá en la ventana de la iz- 
quierda el dibujo original, de lo 
contrario sonará una campanada 
indicándole que se acabó el tiem- 
po asignado. 

En principio parece sencillo, pe- 
ro la característica principal de es- 
tos rompecabezas, el movimiento, 
complican mucho la resolución de 
éstos. 



Tienes ayudas para resolver los 
problemas, pero éstas restarán 
puntos. El límite de tiempo está 
prefijado en función del número 
de piezas del rompecabezas, 
siendo el tiempo inicial cuando el 
puzzle es de 2 x 2 menor que 
cuando es de 12x8. 

Prueba tu paciencia y habilidad 
para resolver todos y cada uno de 
estos rompecabezas, en el menor 
tiempo posible. 

Puntuación: 
Presentación: 8 
Rapidez: 10 
Claridad: 9 
Adicción: 8 



Programa: Drome 
Tipo: Juego 

Distribuidor: Dinamarket 
Formato: Cassette 



Percy se ha introducido en el 
corazón de Drome. Ayúdale a rea- 




lizar su peligrosa misión, que es la 
de destruir el sistema tan comple- 
to y potente de Drome. 

Se trata de un super ordenador 
descontrolado, el cual intentará 
eliminarte. Por suerte, tu odisea se 
inicia en la sala de control central 
de Drome, de donde tendrás que 
partir hacia uno de los cuatro sec- 
tores de que se compone y des- 
truir todos y cada una de las de- 
fensas que tiene. La misión es 
complicada, pero estás tú para 
echarle una mano, que falta le ha- 
ce. 

Uno de los sectores es el interior 
de un cable, del que emana una 




fuente de electrones y protones 
que intentarán atacarle. Obvia- 
mente tendrás que destruirlos con 
tu cañón de neutrones. 

Elimina el máximo número de 
ellos para desactivar esta defensa. 

Otro sector es el de las motos de 
luz. Una de estas motos es la del 
ordenador, que intentará hacerte 
estrellar con la estela que deja la 
tuya. Procura esquivarla a la vez 
que intentas destruirla de la mis- 
ma manera, acelera, despégate 
de ella y enciérrala para que se es- 
trelle. 

El sector de los tanques es el 
más peligroso, puesto que éstos 
van detrás de tí a la vez que dispa- 
ran sus cohetes. Aguarda tu opor- 
tunidad y escóndete. Llegará tu 



momento y cuando lo haga, dis- 
para a matar. 

Por último, está la habitación de 
la válvula principal. Aquí se trata 
de destruir una sección de la vál- 
vula y escapar a través de ella. Es-- 
te lugar se halla protegido por 
múltiples cañones de rayos láser, 
que barrerán el suelo para locali- 
zarte y destruirte. Sólo con pacien- 
cia y perseverancia conseguirás 
tu propósito. Dispara continua- 
mente, a la vez que esquivas sus 
rayos, y frena a la super máquina. 

Puntuación: 
Presentación: 7 
Rapidez: 8 
Claridad: 7 
Adicción: 7 




SUSCRIBASE 
POR TELEFONO 

* más fácil, 

* más cómodo, 

* más rápido 



Telf. (91) 733 7969 

7 días por semana, 24 horas a su servicio 



SUSCRIBASE A 




La memoria de vídeo (VI) 



Los modos 
de pantalla 




Tras haber concluido el estudio de los 4 
sistemas de almacenamiento de la memoria 
de vídeo y de las figuras móviles, pasamos 
a estudiar en este número las transiciones entre 
las tablas de los distintos modos de pantalla. 



uponemos que habréis 
compendido bien el funcio- 
namiento de las tablas que 
componen los cuatro sistemas de 
almacenamiento. Pero esta serie 
pretende profundizar aún más en 
esas tablas, comentando los valo- 
res iniciales que toman y obser- 
vando los cambios producidos en 
ellas al alterar el sistema de alma- 
cenamiento en el que estamos tra-, 
bajando. 

Enchufemos nuestro 
ordenador MSX 

El primer modo del que podéis 
disponer al enchufar vuestro orde- 
nador es el modo SCREEN 0, cuyo 
sistema de almacenamiento sólo 
posee las tablas 0 y 2. La tabla 0, 
encargada de la distribución en 
pantalla de los carácteres, puede 



tomar dos valores iniciales. Al co- 
nectar el ordenador, la pantalla 
muestra el mensaje "MSX BASIC 
Versión 1 .0. Copyright 1 983 by Mi- 
crosoft. 28815 bytes free" (en el 
caso de que tu ordenador sea de 
16 K de memoria, pondrá "12431 
bytes free") y también muestra en 
la parte baja de la pantalla el con- 
tenido de las teclas de función, 
pues el ordendaor tiene en su inte- 
rior una zona de la memoria ñor-* 
mal (no de la de vídeo) que ordena 
cómo debe disponerse la tabla 0 
al enchufar. Pero si desde esa si- 
tuación introduces un comando 
SCREEN ordenando situar otro 
modo de pantalla, y luego vuelves 
al modo SCREEN 0 de la misma 
manera, la tabla 0 borrará la pan- 
talla, manteniendo el número de 
columnas que hubiera la última 
vez que usasteis el modo SCREEN 
0 (si no habéis utilizado la orden 
WIDTH desde que lo conectásteis, 



mantendrá un WIDTH 37) y situará 
el contenido de las teclas de fun- 
ción si no habéis ejecutado un 
KEY OFF. Pero lo importante para 
el programador es que la tabla 0 
borra la pantalla SIEMPRE que hay 
un cambio de modo de pantalla, 
luego si tenemos un texto en la 
pantalla en el modo SCREEN 1, y 
queremos mantenerlo en el modo 
SCREEN 0, tendremos que volver- 
lo a pintar. Por lo tanto el comando 
SCREEN también puede sustituirá 
la orden CLS, si es que nos halla- 
mos en el modo SCREEN 0. 

La tabla 2, encargada de alma- 
cenar los patrones de los carácte- 
res, al ejecutarse la orden SCREEN 
0 toma los patrones de la lista de 
los 256 caracteres MSX. Esto es 
muy peligroso si habéis introduci- 
do nuevos caracteres, pues estos 
se borran y son sustituidos por los 
caracteres originarios. Por lo tanto, 
salvaguardad los datos de vues- 




24 MSX 





el modo SCREEN 0, nada más en- 
chufar el ordenador, la zona libre 
de memoria está llena de datos 
que poseen los ordenadores SO- 
NY, y como para pasar a BASIC ha 
de aparecer en la pantalla un ME- 
NU, con el nombre del oraenador 
trazado encima, y todo ello en el 
modo SCREEN 2, los datos de ese 
sistema de almacenamiento se 
mantienen al pasar al modo 
SCREEN 0, exceptuando las zonas 
ocupadas por las tablas 0 y 2. Así 
os podréis encontrar las 3 figuras 
móviles que el banco de datos uti- 
liza, diseñadas entre los octetos 
14336 y 14359, en lo que en el 
modo de pantalla era la tabla 14. 

En esa zona libre de la memoria 
podéis almacenar los datos que 
queráis, e incluso podéis utilizarla 
para almacenar números que ten- 
gáis que usar en vuestros progra- 
mas, o grandes bloques de datos. 



tros caracteres en otra parte del 
ordenador, si es que queréis vol- 
verlos a utilizar. 

Pero la tabla 0 tiene 960 octetos, 
y la tabla 2 tiene 2048, y sin em- 
bargo la memoria de vídeo tiene 
un total de 16384. ¿Qué sucede 
en el sistema de almacenamiento 
del modo SCREEN 0 con los 
1 3376 octetos restantes? Pues su- 
cede que simplemente se quedan 
vacíos, o mejor dicho, que no se 
alteran. Si hemos diseñado en el 
modo SCREEN 1, por ejemplo, 
unas figuras móviles y las hemos 
introducido en la tabla 9 (com- 
prendida entre los octetos 1 4336 y 
1 6383), al pasar al modo SCREEN 
0 los patrones no se borran, y se 
mantienen en la memoria de 
vídeo inalterados, pues esa zona 
de la memoria de vídeo es zona li- 
bre en SCREEN 0 (los 1 3376 octe- 
tos libres están distribuidos en 
nuestros ordenadores MSX de la 



manera siguiente: son los com- 
prendidos entre el 960 y el 2047, y 
los comprendidos entre el 4096 y 
el 16383. En la figura 1 podéis ver 
más detenidamente las zonas li- 
bres de la memoria de vídeo en 
los cuatro sistemas de almacena- 
miento). 

Si alteráis un valor en los octetos 
de la zona libre a partir del 14336, 
ese valor alterado se mantiene 
luego al pasar a otros modos de 
pantalla, luego SE PUEDEN DISE- 
ÑAR SPRITES EN EL MODO 
SCREEN 0, aunque no se puedan 
utilizar más que en los otros mo- 
dos de pantalla. A esto nos refería- 
mos en el número anterior cuando 
hablábamos de que también se 
puede establecer una identifica- 
ción entre los patrones de los ca- 
racteres y los patrones de figura 
móvil en el modo SCREEN 0. 

Si poseéis un ordenador SONY 
MSX, os daréis cuenta de que en 



En el sistema de almacena- 
miento del modo SCREEN 1 exis- 
ten las tablas 5, 6, 7, 8 y 9. La tabla 
5 funciona exactamente igual que 
la tabla 0 en el sistema de almace- 
namiento del modo SCREEN 0, y la 
tabla 7 funciona igual que la tabla 
2 con los patrones de los caracte- 
res. La tabla 6, encargada de los 
colores en el modo SCREEN 1, al 
ejecutarse la orden SCREEN 1 ini- 
cial iza todos los caracteres con 
los colores establecidos de fondo 
y tinta, poniendo a todos los carac- 
teres con la misma combinación 
de colores. Aunque hubiéramos 
alterado alguna combinación, la 
inicialización de la tabla 6 es drás- 
tica. 

La tabla 8, al igual que las tablas 
1 3 y 1 8, no cambia nada al ejecu- 
tarse la orden SCREEN 1, a excep- 
ción de la coordenada «y» de to- 
das las figuras móviles, que toma 
el valor 209, situando a todos los 



MSX 25 



La pantalla 



«sprites» fuera de la zona visible 
de la pantalla. Al enchufar el orde- 
nador, cada plano de proyección 
contiene a la figura móvil de su 
mismo número (el plano 0 la figura 
0, el 1 la 1, etc..) y si son figuras 
móviles «grandes», el plano 0 con- 
tiene a la 0, el 1 a la 4, el 2 a la 8, 
etc.. (como ya vimos en el capítulo 
quinto, dedicado a las figuras mó- 
viles). 

La tabla 9, como las tablas 14 y 
1 9, no sufre ningún tipo de cambio 
al ejecutarse el comando 
SCREEN, sea cual sea el modo en 
el que nos hallemos. 

El sistema de almacenamiento 
del modo SCREEN 1 tiene un total 
de 11360 octetos de memoria li- 
bre, distribuidos de la siguiente 
manera: la zona de memoria com- 
prendida entre el octeto 2048 y el 
6143, la zona entre el 7040 y el 



8191, y la zona entre el 8224 y el 
14335. 

En el sistema de almacena- 
miento del modo SCREEN 2, la ta- 
bla 1 -1 2, responsable de los pixels 
que han de salir de color de tinta o 
de color de fondo, aquella tabla a 
la que llamábamos «mapa de la 
pantalla», al ejecutarse la orden 
SCREEN, borra absolutamente to- 
dos los datos que tenía e introduce 
ceros en todos sus octetos. La ta- 
bla 10, que situaba unos cuadros 
en función de otros del mismo 
campo, al ejecutarse la orden 
SCREEN 2 sitúa cada cuadro en 
función de sí mismo. El manejo de 
estas dos tablas, en consecuen- 
cia, ha de hacerse con cuidado, 
pues si tenéis algo dibujado en el 
modo SCREEN 2 se os borrará al 
cambiar de modo de pantalla, y lo 
mismo sucederá con los trucos 



gráficos que hayáis logrado pintar 
con la tabla 10. 

La tabla 1 1 inicializa a TODOS 
sus octetos con el color de fondo 
establecido por la última orden 
COLOR, y a todos les sitúa un co- 
lor de tinta transparente (color nú- 
mero 0). En el momento en que 
desde BASIC queramos impreg- 
nar de un color a un píxel con la 
orden PSET, y no especificamos el 
color, el octeto correspondiente de 
la tabla 1 1 adquiere el último color 
de tinta especificado en una sen- 
tencia COLOR. 

Estas drásticas maneras de ini- 
cializarse que tienen estas tablas 
al ejecutarse la orden «SCREEN 
2», es decir, al producirse la transi- 
ción de un modo de pantalla cual- 
quiera al modo SCREEN 2, en el 
caso de que usar este modo sea 
imprescindible (en muchos casos 



O 960 



2048 



4096 



16384 



SC R EEN 
O 





2048 



8192 

6144 7040 8224 



SCREEN 
1 





14336 



16384 




7040 8192 



16384 





Y/A TABLAS DE LA MEMORIA DE VIDEO I I MEMORIA LIBRE 



26 MSX 



lo es). El sistema de almacena- 
miento del modo SCREEN 2 sólo 
tiene 1 152 octetos de memoria li- 
bre entre los octetos 7040 y 8191, 
ambos inclusive. (Aún así, luego 
veremos un truco gracias al cual sí 
se pueden conservar los datos de 
las tablas del modo SCREEN 2). 

La tabla 1 7, al ejecutarse la or- 
den SCREEN 3, introduce en todos 
los bloques de 4 x 4 pixels el color 
de fondo que esté establecido, 
luego destruye los dibujos que es- 
tén en la pantalla. La tabla 15, en- 
cargada de situar unos cuadros 
en función de otros, también se 
inicializa drásticamente, poniendo 
cada cuadro en función de sí mis- 
mo, y haciendo desaparecer, co- 
mo sucedía en el sistema de alma- 
cenamiento del modo SCREEN 2, 
todos los trucos gráficos que hu- 
biera pintados. 

El modo SCREEN 3 tiene 1 1 904 
octetos de memoria libre, distribui- 
dos de la siguiente manera: los 
octetos comprendidos entre los 
octetos 1 536 y 2047, entre el 291 6 
y el 691 1, y entre el 7040 y el 
14335. 

¿Qué hacer con la 
memoria libre? 
Aplicaciones 

La principal aplicación de la 
memoria de vídeo libre es, por su- 
puesto, llenarla de datos que sean 
necesarios para vuestros progra- 
mas, pero teniendo siempre cui- 
dado con los procesos de transi- 
ción de un modo de pantalla a 
otro, pues es posible que el otro 
modo de pantalla al que queréis 
pasar ocupe esa memoria libre 
con tablas que se inicializen de 
forma drástica, con lo cual esos 
datos que teníais almacenados se 
han borrado, y tenéis que volver- 



los a introducir. Fijaos bien en la fi- 
gura 1, que representa las zonas 
libres de la memoria de vídeo en 
los cuatro sistemas de almacena- 
miento, antes de elaborar un pro- 
grama que conlleve un proceso 
de transición de un modo a otro. 
Para manejar la figura 1 debéis te- 
ner mucho cuidado, pues en este 
mapa de la memoria hemos in- 
cluido los números de los octetos 
que comienzan una zona, pero no 
los que la terminan, así que, por 
ejemplo, si tomáis la zona de me- 
moria que va desde el octeto 2048 
all 6144 en el sistema de almace- 
namiento del modo SCREEN 1, 
esa zona es en realidad la que va 
del 2048 al 61 43, ambos inclusive, 
pues el octeto 6144 ya pertenece 
a la zona siguiente. Tened, por lo 
tanto, en cuenta, que una zona 
siempre comienza con un número 
par y termina con uno impar. 

Pero la memoria libre no sólo 
sirve para almacenar datos arbi- 
trarios, sino también para trasladar 
datos dentro de la misma memo- 
ria de vídeo. 

Un ejemplo bastante sencillo de 
esto último es la traslación de ca- 
racteres programables. Como ya 
dijimos antes, los caracteres esta- 
blecidos en el sistema de almace- 
namiento del modo SCREEN 0 en 
la tabla 2, se pierden al pasar al 
modo SCREEN 1, pues la tabla 7 
inicializa con los 256 caracteres 
MSX, y no considera si habéis 
cambiado algún carácter o no. Sin 
embargo, los datos de vuestros 
caracteres cambiados se conser- 
van donde estaban, es decir, entre 
los octetos 2048 y 4095, que en 
SCREEN 1 son de memoria libre. 
Tenéis la suerte, por lo tanto, de 
que vuestros datos no hayan sido 
borrados, a pesar de que los ca- 
racteres que van a escribirse en la 
pantalla son los que se encuen- 
tran en la tabla 7, entre los octetos 



0 y 2047. Si ahora introducía la or- 
den; 

FOR T=0 TO 2047A/POKE 
T,VPEEK(T + 2048:NEXT 
«en realidad estáis situando en la 
'tabla 7 todos los datos que antes 
' se hallaban en la tabla 2, y por tan- 
to se conservan vuestros carácte- 
res programados, y salen a la pan- 
talla en el modo SCREEN 1. Para 
realizar el proceso inverso, no po- 
déis hacer lo mismo, pues en el 
sistema de almacenamiento del 




modo SCREEN 0 no son memoria 
libre los octetos del 0 al 2047, por- 
que la tabla 0 ocupa 960 octetos, 
del 0 al 959. De ese manera, al 
cambiar al modo SCREEN 0, bue- 
na parte de vuestros datos han de- 
saparecido y no podéis introducir- 
los en la tabla 2. Para poder hacer- 
lo tenéis que, todavía en el modo 
SCREEN 1, desplazar la tabla 7 
completa hacia alguna zona que 
sea de memoria libre en ambos 
modos, como la zona comprendi- 
da entre los octetos 4096 y 61 43, o 
como la inmensa zona que va 
desde el 8224 al 14335. Una vez 
desplazada, se ejecuta la orden 
"SCREEN 0" y entonces los datos 
de la tabla 7 han dq,ser «redespla- 
zados» a la tabla 2, y allí podrán 



MSX 27 



el mejor sof twa 




DE CARgA 



DROME 

Entretanto en DROME, un Super-ordenador, debes encontrar y elimi- 
nar los sofisticados sistemas de defensa y supervivencia. 

Has de elegir uno de bs cuatro sectores que constituyen los mecanis- 
mos de defensa de esta terrorífica máquina. 

Un atractivo juego de acción, donde se pone a prueba la capacidad 
de la máquina y del jugador. 

Precio de venta 2.600 ptas. (IVA incluido) 



FLIGHT DECK 

Sienta la emoción del golfo de Sidra en casa. 

FLIGHT DECK es un juego de estrategia y habilidiad en el que tendrás 
que desmantelar las bases enemigas. 

Al mando de un portaaviones donde dispones de 1 0 unidades de 
combate... y poco tiempo. 

Precio de venta 2.600 ptas. (IVA incluido) 



ESTOS 



PRO< 




MC-ATTACK 

Ayuda a Fredy, el Rey de b Hamburguesa a preparar el suculento man- 
jar que hace las delicias de bs comensales. 

Ten cuidado con bs salchichas grasientas y los huevos escurridizos que 
intentarán arruinar tu exquisito pbto. 

Defínete con la pimienta y procura hacer el mejor número de hambur- 
guesas posible. 

... Buen provecho. 

Precio de venta 1 .900 ptas. (IVA incluido) 




re para r~rl 




COflFUSED? 

EL PUZZLE ELECTRONICO 



mmmmx 




infoúis.s.a. 



CONFUSED? 

Es el puzzle electrónico. 

El objeto del juego es resolver 1 0 puzzles con distinto número de pie- 
zas, a elegir, pero todas... MOVIENDOSE. 

Pon a prueba tu inteligencia y capacidad de deducción para solucio- 
nar algunos de estos entretenidos rompecabezas. 

Precio de venia 2.600 ptas. (IVA incluido) 

NORTH SEA HELICOPTER 

Una explosión en una plataforma en el mar del Norte arroja a bs 
hombres a un destino incierto... 

Empieza una carrera contrareloj para salvarles de su fatal situación. 

Tienes que convertirte en un piloto experimentado para mantener el 
control del helicóptero... El tiempo empeora. 

¿Crees que cumplirás la misión? 

Precio de venta 2.600 ptas. (IVA incluido) 




SPACE RESCUE 

Desciende de tu nave nodriza a la 
superficie lunar e intenta rescatar a los 
hombres extraviados. 

Ojo con los meteoritos que te destrui- 
rán cuando intentes regresar. 

Disponer de nuevas plataformas pa- 
ra culminar con éxito la misión. 

Desgraciadamente tu nave nodriza 
está bloqueada por unidades de com- 
bate enemigas... Intenta destruirlas. 

Precio de venta 2.600 ptas. (IVA 
incluido) 




MSX 64K - CASSETTE 
MANUAL EN CASTRLANO 



Solicita tu programa favorito en tu tienda especializada habitual o recorta y envía 
este cupón a INFODIS. S. A.. c/Bravo Murillo, 377. 5 ° A - 28020 MADRID. 
NOMBRE 



DIRECCION _ 
POBLACION 



PROVINCIA _ 



C P 



Forma de pago: CHEQUE 11 CONTRAREEMBOLSO □ 

TARJETA DE CREDITO American Express □ VISA n INTERBANK □ 

Numero de m, tarjeta rTTTITTf TTTTTT TTT I 1 T ] 

CADUCIDAD 

Firma 



TITULO 


CANTIDAD 


TITULO 


CANTIDAD 


DROME 
FLIGH DECK 
MC-ATTACK 




CONFUSED? 
NORTH SEA 
HELICOPTER 
SPACE RESCUE 





I 

I 
I 
I 

I 
I 
I 
I 
I 

I 



La pantalla 



salir vuestros carácteres a la pan- 
talla. 

Algo parecido sucede con las fi- 
guras móviles, cuyos patrones se 
mantienen en la memoria en cual-' 
quier modo SCREEN, pero que al 
cambiar de modo de pantalla son 
pintadas fuera de la zona visible. 
Si desplazáis la tabla 8 (o la 1 3 ó la 
18) a la zona comprendida entre 
los octetos 7040 y 7167, zona que 
pertenece a la memoria libre en 
todos los sistemas de almacena- 
miento de los cuatro modos 
SCREEN, y a continuación «redes- 
plazáis» esta tabla a su posición 
inicial en otro modo de pantalla, 
los datos de la posición de las fi- 
guras móviles en la pantalla se 
conservarán en la transición de un 
modo a otro. Esto os servirá para 
cambiar libremente de un modo 
de pantalla a otro sin tener que 
cambiar para nada (ni en color, ni 




en patrón, ni en posición) las figu- 
ras móviles que estéis usando. 

Otra de las aplicaciones de la 
memoria de vídeo libre tiene que 
ver con la otra memoria, la memo- 
ria que vosotros utilizáis al progra- 
mar, al apretar una tecla, al volver 
de una subrutina, etc.. Esa memo- 



ria ha sido tratada ya en bastantes 
ocasiones por MSX Magazine, y ya 
sabréis mucho de ella. Sólo os re- 
cordaremos que contiene la ROM 
y alberga también la RAM, y que 
en esta última se almacenan vues- 
tros programas en BASIC. 

Si vuestro ordenador MSX es de 
los llamados «pequeños», y al en-' 
chufarlo sale en la pantalla el men- 
saje "12431 bytesfree", que signi- 
fica "12431 octetos disponibles" 
(refiriéndose, por supuesto, a la 
RAM, no a la memoria de vídeo, 
que tiene 16384 octetos en todos 
los modelos MSX) entonces la 
aplicación de la memoria libre que 
a continuación explicamos no 
puede realizarse en vuestro or- 
dendaor. Si vuestro ordenador es, 
sin embargo, de los de "2881 5 by- 
tes free", entonces sí podéis efec- 
tuarla. 

La aplicación consiste en alma- 
cenar en la RAM los datos de la 
memoria de vídeo que queramos. 
Tomemos por ejemplo el caso del 
modo SCREEN 2, cuyos datos son 
muy difíciles de trasladar debido a 
la escasa memoria libre que po- 
see este modo de pantalla. 

Imaginaos que en el juego que 
estáis programando se define un 
dibujo de buena calidad en el mo- 
do SCREEN 2, y que en medio del 
juego queréis pasar a SCREEN 0 
para escribir en la pantalla un 
mensaje con texto, y después 
queréis volver al mismo dibujo en 
el modo SCREEN 2. Sería dema- 
siado largo tener que volver a di- 
bujarlo, sobre todo si se utilizan 
para su diseño muchas funciones 
gráficas, como CIRCLE, UNE, 
DRAW, etc.. Sin embargo, si tras- 
ladáis de lo que sea al observador 
con la pantalla en el modo 
SCREEN 0, y a continuación pa- 
sáis a SCREEN 2 y tomáis de nue- 
vo en la memoria de vídeo los da- 
tos que habíais dejado en la RAM, 



volveréis al mismo dibujo de la 
pantalla que teníais previamente. 

Lo principalmente de este movi- 
miento de bloques de datos entre 
las memorias es saber de qué par- 
te de la memoria de vídeo a qué 
parte de la RAM se trasladan estos 
datos, y lo mismo se nos plantea 
en sentido inverso. En este caso 
vamos a trasladar todos los datos 
de la memoria de vídeo, los 1 6384 




octetos, que es lo máximo que po- 
déis trasladar, a la memoria RAM. 
Como ya sabréis, la memoria prin- 
cipal tiene 65536 octetos, nume- 
rados del 0 al 65535. El bloque del 



30 MSX 



O 32767 es la ROM, la memoria 
inalterable destinada a la lectura, y 
a partir del 32768 comienza la 
RAM. A partir de este octeto se al- 
macena nuestro programa en BA- 
SIC (únicamente en el caso al que 
nos referimos, es decir, si vuestro 
ordenador MSX es de los de 
"28815 bytes free") y a partir de 
ahí podéis tomar cualquier bloque 
de octetos del final de la RAM, 



al principio, pues destruiríais total 
o parcialmente vuestro programa 
en BASIC. Si el bloque de datos a 
trasladar es muy grande, como en 
este caso (16384 octetos es un 
gran bloque) es necesario reser- 
var una gran cantidad de memoria 
(otros 1 6384 octetos) en la RAM. 
Si empleáis los octetos que hay 
desde el 44000 al 60383, podréis 
almacenar vuestras pantallas, al 





pues los últimos tres o cuatro mil 
octetos están destinados a otras; 
funciones, cuyo nombre general 
es «sistema operativo». Tampoco 
os conviene tomar octetos de muy 



tiempo que dejáis más de once 
mil octetos (desde el 32768 al 
43999) para vuestros programas 
en BASIC. Este traslado de datos 
puede hacerse de una forma muy 



simple con un bucle FOR-NEXT 
para almacenar los datos, y otro 
bucle para retornarlos. (Te recor- 
damos que en la memoria princi- 
pal las órdenes VPOKEy VPEEK no 
se pueden utilizar, se utilizan las 
órdenes POKE y VPEEK). Pero los 
dos bucles, tanto el almacena 1 
miento como él retorno de los da- 
tos en BASIC es verdaderamente 
lento, y sólo merece la pena em- 
plear esta aplicación en el caso de 
que la pantalla que vayáis a alma- 
cenar sea muy complicada, y su 
trazado desde BASIC exija mu- 
chas órdenes gráficas. 

Si sabéis Código Máquina, el 
traslado de los bloques de datos 
acudiendo al BIOS (Basic Input/ 
Output System = Sistema Básico 
de Entrada/Salida) con nemónico 
CALL dirigido al código 0059H pa- 
ra trasladar datos de la memoria 
de vídeo a la RAM y el código 
005CH para la operación inversa, 
es decir, trasladar datos de la RAM 
a la memoria de vídeo. 

Si no sabéis Código Máquina 
no os preocupéis, pues analizare- 
mos más profundamente en pró- 
ximos números cómo desenvol- 
verse en la memoria de vídeo des- 
de el Código Máquina. 

Tras explicaros el funciona- 
miento de todas las tablas y los 
procesos de transición entre los 
modos de pantalla, ya tenéis co- 
nocimientos suficientes como pa- 
ra aplicar en vuestros programas 
todos los trucos que se os ocurran 
basados en esta parte tan impor- 
tante de vuestro ordenador. 

Pero podéis aprender más 
de la memoria de vídeo de indu- 
dable utilidad: en el próximo nú- 
mero nos ocuparemos de los re- 
gistros VDP y de sus aplicaciones 
para el programador. 
José M. Cavanillas 



MSX 31 

















SONY 








F500P 










i 


CAfrrptDCt 






• 


1 





- 



2L 



os ordenadores de la se- 
gunda generación están 
empezando su andadura 
en el mercado español. La com- 
petencia es dura y diversa. En este 
aspecto nos encontramos con el 
Sony HB-500P, que viene a com- 
petir directamente con el Philips 
VG-8235. 

Varias son las características 
que hacen resaltar a este modelo 
del resto de los ordenadores de la 
gama. Su presentación unida a 
una solidez, a la que estamos po- 
co acostumbrados, lo resaltan 



bastante. Sin embargo, existen 
cualidades dignas a tener en 
cuenta, entra otras, su teclado in- 
dependiente. 

Este, con un conjunto de teclas 
numéricas separado del teclado 
principal, le dan aspecto más semi 
profesional, lo que posibilita la en- 
trada de datos numéricos con 
mayor rapidez. El tacto es muy 
bueno y la disposición de las te- 
clas resulta ideal, al igual que el 
ángulo de inclinación del teclado, 
que se consigue gracias a dos pe- 
queñas patas plegables. 



La conexión al cuerpo principal 
del ordenador se hace a través de 
un cable de algo más de un metro. 
Esto es importante, ya que se pue- 
de tener el ordenador a una dis- 
tancia cómoda, lo que ahorra es- 
pacio sobre todo en mesas con 
mucho trabajo. 

Por otro lado, tenemos lo que es- 
el ordenador es sí, donde pode- 
mos resaltar la unidad de discos 
de 3.5 pulgadas capaz de forma- 
tear a simple y doble cara, lo que 
permite acceder a 360 o 720K de 
información. Sin lugar a dudas, es- 



32 MSX 



ta cualidad, unida a que posee 
disco RAM de 32K, 256 colores de 
una paleta de 512, reloj, superpo- 
sición de vídeo y todas esas ca- 



Y 



racterísticas de los ordenadores 
de la 2. a Generación, le confieren 
en el modelo más completo del 
mercado. Todo esto se encuentra 
a buen recaudo, dentro de una 
carcasa similar a la del IBM PC, es 
más, cuando se ve por vez prime- 
ra, da la sensación de estar delan- 
te del hermano pequeño de un 
PC. Aquí encontraremos todos los 
conectores que posee el estándar. 
Dos port de cartuchos y la unidad 
de disco, se encuentran en la par- 
te anterior de la carcasa muy ac- 
cesible al usuario, que agradecerá 
esta posibilidad. Además de esto, 
encontrará dos ports para joys- 
ticks y un reset, todo a mano. En la 
parte posterior de la carcasa, en- 
contrará el interface Centronics, 
conectores para monitor RGB, au- 
dio/vídeo y para el cassette. Tam- 
bién es de destacar un tercer bus 
de expansión para cartuchos 
ROM y un conector adicional para 
otra unidad de discos. 

Aún queda por comprobar una 
cualidad común a todos los orde- 
nadores MSX: la compatibilidad. 
De hecho, a este apartado habría 
que dedicarle algo más de tinta y 
tiempo, que no hemos podido en 
esta ocasión. 

En suma, es un conjunto muy 
completo, al que no le falta de na- 



II I' ir I ) 




Foto 1: Vista posterior del ordenador, donde podemos apreciar el bus de 
expansión, conector para unidad de disco y ports video y cassette. 



da. Quizás sea demasiado para el 
usuario medio, pero lo que está 
claro es que el equipo se presenta 
como la más completa versión de 
un ordenador de la 2. a Genera- 
ción. Sin embargo, no todo va a 
ser bueno. El precio es su principal 
enemigo, puesto que al rondar 
una cifra de 140.000 ptas. no to- 
dos van a estar dispuestos a de- 



sembolsarla. Insistimos en que el 
equipo es completo, los manuales 
son buenos y que, además viene 
con un disco del sistema operativo 
MSX-DOS. Pero aún así, creemos 
que es demasiado aquilatado, te- 
niendo en cuenta que se trata de 
una máquina con tecnología anti- 
gua (se mantiene el Z-80), aunque 
aprovechada al máximo. 




Foto 2: El teclado independíente es una de las grandes características de este 
potente modelo. 



MSX 33 



Simón 

LHUste juego consiste en. la 
| fu O repetición de una serie de 
\ 'sonidos generados al azar 

por nuestro ordenador. Los soni- 
dos posibles son cuatro, con una 
representación igráfica en 1 la pan- 
talla de nuestros aparatos. Con 
cada nota, un sector diferente de 
los cuatro representados cambia 
de color. Estos colores han sido 
escogidos para jugar con una TV 
en color; si se juega en un aparato 
monocromático posiblemente ha- 
brá que modificar algún valor de la 
tabla de colores. Los colores están 
contenidos en las matrices unidi- 
mensionales c1(n), correspon- 
diente a los colores sin sonido, y 
en la tabla c2(n), contiene los colo- 
res correspondientes a los soni- 
dos. El elemento 1 corresponde al 
sprite 2 y 3, el elemento 2 al sprite 
6 y 7, el elemento 3 al sprite 4 y 5, y 
el elemento 4 al sprite 0 y 1. 

Las variables más importantes 
son las matrices de este progra- 
ma; aparte de las matrices de co- 
lores, las otras matrices son: 

- A(n), contiene la secuencia 
de sonidos a repetir. Inicialmente 
tiene 100 elementos, pero no hay 
inconveniente para aumentar la 
dimensión de esta matriz. 

- NM$(n), contiene el nombre 
de los que han conseguido un ré- 
cord. 




- RE(n), contiene las puntua- 
ciones récord. 

El programa en sí no contiene 
ninguna gran complejidad estruc- 
tural, y cada rutina tiene un REM 
que indica su función. Una posible 
mejora de este juego consiste en 
la optimización de su velocidad, 
para conseguir un desarrollo del 
juego más veloz, aunque conside- 
ro que la dificultad en esta versión 
es suficiente. 

El programa emplea las teclas 
de cursor, pero si se desea em- 



plear un joystick no hay más que 
sustituir el 0 de la línea 260 por el 
número 1 ó 2, según donde esté, 
conectado el mando de juegos. 

Por último, añadir que el progra- 
ma consta de un temporizador 
| que ocasiona que sólo se dispon- 
gan de 10 segundos para pulsar 
la tecla correspondiente al sonido 
en cada ocasión. Si se sobrepasa 
ese tiempo, se habrá perdido la 
partida. 

Diego Soriano 
Madrid 



10 CLS 
30 KEY OFF 
40 CLEAR 1000 
50 RA=RND (-TIME) 
60 DIM A(100) 
70 Cl (1>=6:C1 (2)=14:C1 <3)=4:C1 ( 
4>=12 

80 C2 < 1 ) =9 :C2 (2) =1 1 :C2 (3) =5 :C2 ( 
4) =3 



90 FÜR P=l Tü 5:RE(P)=240-P*40: 

NEXT P 
100 GÜSUB 450 

110 REM *** LAZO PRINCIPAL **** 

120 FÜR N=l TD 100 

130 A(N)=INT(RND<4) *4)+l 

140 NEXT N 

150 L=l 

160 FÜR F-l Tü L 



LOS JUEGOS ELECTRONICOS 



34 MSX 



PREMIO DE 7000 PTS 



170 
180 



190 

200 

210 
220 
230 
240 
250 
260 

270 
280 

290 

300 

310 
320 

330 



340 
350 



360 

370 
380 
390 

400 

410 
420 
430 
440 
450 

460 

470 
480 
490 

500 

510 
520 
530 
540 



A*=CHR*<67+A(P) ) 

C(A(P> >=C2(A(P) > :GOSUB 1380 
:FOR Tfl TO 200.-NEXT T:C(A 
(P) )=C1 (A(P) ) íBOSUB 1380 

PLAY "V6L4T250Ü4S1 1M12000XA 

FÜR T*l TO 100*DI:NEXT T 

NEXT P 

PRINT 

LOCATE 8,21 : PRINT "TU TURNO" 

FOR P=l TO L 

TIME=0 

IF STICK(0)=0 THEN Z=0 ELS 

E GOTO 260 
IF TIME=500 THEN GOSUB 1230 
IF Z=0 THEN Z=STICK(0) ELSE 

GOTO 280 
IF Z=0 THEM 270 
A2=INT(Z/2)+l 
A2t=CHR* (67+A2) 

PLAY "V6L4t250O4Sl 1M12000XA 
2* ; " 

C ( A2 ) =02 ( A2 ) : GOSUB 1 380 : FOR 
T=l TO 150:NEXT T:C(A2)=C 

1 (A2) : GOSUB 1380 
IF A20ACP) THEN GOTO 430 
PU=PU+1 : LOCATE 8,19:PRINT"P 

UNTU ACION" ; : PRINT USING "# 

##" ;PU; 
IF INT<PU/15)=PU/15 AND Dt> 

.5THEN DI=DI- .25 
NEXT P 
PRINT 

LOCATE 8,21:PRINT" ESCUCHA 

II 

FOR T=l TO 150:NEXT T 

L=L+1 

GOTO 160 

GOSUB 1230 

END 

' ***** PRESENTACION ****** 
*** 

COLOR 10,4,12 
SCREEN 2,3 
GOSUB 1130 
X0=30:Y0=50 
X 1=30: Y 1=82 
X2=10B:Y2=0 
X3=130 s Y3=0 
X4=108:Y4=132 
X5=130 :Y5=132 



550 
560 
570 



580 
590 

600 

610 
620 
630 
640 
650 
660 
670 
680 
690 

700 

710 
720 
730 
740 
750 
760 
770 



X6=208:Y6=50 
X7=208 : Y.7=82 
GOSUB 1860::SOUND 



6,5:S0UND 



780 



790 

800 

810 
820 
830 

840 
850 



7,6:S0UND 1,120:SOUND 8,1 



6 :SOUND 

OUND 12,120:SOUND 
FOR T=l TO 30 
X0=X0+2 
Xl=Xl+2 
Y2=Y2+1 
Y3=Y3+1 
Y4=Y4-1 

Y 5= Y 5-1 
X6=X6-2 
X7=X7-2 
FOR 
PUT 
PUT 
PUT 
PUT 
PUT 



9,16:S0UND 10,16:S 
13,4 



PUT 
PUT 
PUT 
NEX - 



P=l TO 
SPRITE 
SPRITE 
SPRITE 
SPRITE 
SPRITE 
SPRITE 
SPRITE 
SPRITE 
T 

TO 



35:NEXTP 
0, (X0,Y0) ,9 
(XI ,Y1 ) ,9 
(X2,Y2) ,11 
(X3,Y3) ,11 
(X4,Y4) ,5 
5; (X5,Y5) ,5 

6, (X6,Y6) ,3 

7, (X7,Y7) ,3 



1 , 
* i 
3, 
4, 



4:C(I)=15:NEXT I 



FOR 1=1 
:GOSUB 1380:SOUND 6,13:S0U 
ND 1,200:SOUND 3., 150:SOUND 
7,0:SOUND 8,16:S0UND 9,16 
:SOUND 10,16:SOUND 12,30:S 
OUND 13,9: 
C(4)=9:C(1)=11 :C(3)=5:C(2)= 
3:FOR 1=1 TO 30:NEXT I :GOS 
UB 1380 :FOR T=l TO 4:C(T) = 
C1(T):NEXT T.-FOR 1= 1 TO 1 
00:NEXT I :GOSUB 1860 
GOSUB 1800 

DRAW "S9BM30,150R16G4L5F9D2 

L16E4R5H9U2" 
DRAW " BM+ 1 9 , +0R 1 2G4D7F4L 1 2E 

4U7H4" 

DRAW " BM+ 1 5 , +0R4F5E5R4D 1 5H4 
U6G5H5D6G4U15" 

DRAW "BM+25,+0R9F4D7G4L9H4U 
7E4":DRAW "BM+3 ,+3R3F4DlG4 
L3H4U 1 E4 " : DRAW " BIÍ+ 1 3 , -3R4 
F8U5E4D 1 5L4H8D5G4U 1 5 " 

GOSUB 1 800 : PLAY " 04L4F " " 02 
L4F" , "06L4F" 

FOR T=l TO 2700: NEXT T 



860 SCREEN 0 :CDLDR 1,3:WIDTH 35 

87IZI PRINT" - INSTRUCCI 

ÜNES -" : PRINT : PRINT " ES 
TE JUEGO CONSISTE EN REPET 
IR LA SECUENCIA DE COLOR- 
ES Y SONIDOS PRODUCIDOS P 
OR LA MAQUINA . " 

88IZI PRINT " PARA INTRODUCIRLO 
S SE UTILIZAN LAS TECLAS 
DE CURSOR." 

890 PRINT " SI LA SECUENCIA E 
S REPETIDA INCORRECTA 
MENTE, SE TERMINA LA P 
ARTIDA . " 

9(80 PRINT" EL GRADO DE DIFICU 

LTAD DETERMINA EL TIEMPO E 

NTRE CADA NOTA." 
910 LOCATE 6,17: PR I NT " ¿GRAEiQ DE 
DIFICULTAD ti a 31?" :LOCA 

TE 7,-18:PRINT "(1-rapido 

3- lento) " 
920 DléplNKEY* 
930 IF DI*="" THEN 920 
940 D I =V AL < D I * ) : I F DI >3 OR D I < 1 

THEN 920 
950 Di =01 

960 POR T=l TO 4:C(T)=C1 <T) :NEX 

T TíBOSUB 1350 
970 RETURN 

980 DATA 0,1,3,7,15,15,31,31,63 
,63,127,127,1 27 , 255 , 255 , 25 
5 , 1 28 , 1 92 , 224 ,240 , 248 , 252 , 
254 , 255 , 254 , 252 , 248 , 240 , 24 
0,240,224,224 

990 ' ESPRITE 1 

1000 DATA 255,255,255,127,127,1 
27,63,63,31 ,81 ,15,15,7,3,1 
,0 ,224 ,224 ,240 ,240 ,240 ,248 
, 248 , 254 , 255 , 254 , 252 , 248 , 2 
40,224,192,128 

1010 * SF'R I TE 2 

1020 DATA 0,0,0,3,15,31,63,127, 
255,127,63,31 ,15,7,3,1 ,7,6 



1070 
1080 



3 0"=¡i=¡ Oc;c¡ ncc ncrcr 
Ocrcr 0«=¡c=; *?S?5 9=19 

8,0' 



255,255, 



52,224,192,1! 



1030 ' SPRITE 3 

1040 DATA 224,252,255,255,255,2 
55 , 255 , 255 , 255 , 255 , 255 , 63 , 
7,3,1 ,0,0,0,0,192,240,248, 
252 ,255 ,255 ,254 ,252 ,248 ,24 
0,224,192,128 
11850 ' SPRITE 4 

1060 DATA 1,3,7,15,31,63,127,25 



LOS JUEGOS ELECTRONICO 



36 MSX 



1090 
1 100 



1110 
1120 



1 130 

1 140 
1150 
1160 
1170 
1 180 
1 190 

1200 

1210 
1220 
1230 



1240 
1250 

1260 
1270 
1280 
1290 

1300 
1310 



1320 



1330 



5,127,63,31 ,15,3,0,0,0,0,1 
28 , 1 92 , 224 , 252 , 255 , 255 , 255 
, 255 , 255 , 255 , 255 , 255 , 255 , 6 
3,7 

SPRITE 5 
DATA 0,1,3,7,63,255,255,25 
5 ,255 ,255 ,255 ,255 ,255 ,255 , 
252 , 224 , 1 28 , 1 92 , 224 , 240 , 24 
8 , 252 , 254 , 255 , 254 , 252 , 248 , 
240,192,0,0,0 

SPRITE 6 
DATA 1,3,7,15,31,63,127,25 
5,127,63,31 ,15,15,15,7,7,0 
,128 , 192 ,224 ,240 ,240 ,248 ,2 
48 ,252 ,252 ,254 ,254 ,254 ,'255 
,255 ,255 

SPRITE 7 
DATA 7,7,15,15,15,31,63,12 
7, 255, 127., 63, 31 ,15,7,3,1 ,2 
55 , 255 , 255 , 254 , 254 , 254 , 252 
,252 ,248 ,248 ,240 ,240 ,224 , 1 
92,128,0 

FOR P=0 TO 7 :P*="" :FOR T=l 

TO 32 

REM *** TRAT. SPRITES *** 
READ SP 
P$=P#+CHR* (SP) 
NEXT T 

SPRITE* <P)=P* 
PR I NT 
NEXT P 
RESTORE 
RETURN 

CLSrPUT SPRITE 0, (0,208) :L 
OCATE 8,19:PRINT " HAS FAL 
LADO 

REM *** SI SE FALLA: *** 
PRINT "TU PUNTUACION ES" jP 
Uf " PUNTOS" 
GOSUB 1480 

FOR T=l TO 1700:NEXT T 
COLOR 10,1 ,4 

PRINT" JUEGAS OTRA VEZ CS/ 
N} " ; 

J**INPUT$U) 

IF J$="N" OR J$="n" THEN C 
LS:PUT SPRITE 0,(0,208):LO 
CATE 7,10:PRINT:PRINT" ¡ HA 
STA OTRA ! " :END 
IF J$="S" OR J$="s" THEN C 
LSrGOSUB 1710 :TIME=<9 :DI=D1 
:PU=0:GOTO 120 
GOTO 1300 



1 



EN CASTELLANO 



EL SEMANARIO PROFESIONAL 
POR EXCELENCIA 

- ; 






LA DE MAYOR WRJSJON 
PARA ORDENADORES 
COMMODORE 



publhformáticq s/a iz M 

*• Teis (93) 318 



unllo 377 28020 MADRID Th (91 i 733 74 13 
12 08001 BARCELONA 

I 318 02 89 . • i 101 17 PO f ■ ! j; 2H 



lí i y i ] 
i ■ ■ 

1 1 1 L 






i -M 

i 

¡i ■ ' j 






IMAGAZINE 




IDICION INCAS Mil ANO 




LA PRIMERA REVISTA EN 
CASTELLANO PARA 18M PC 
Y COMPATIBLES 




*^M_ti)ihi__ 



13413 REM *** CAMBIO COLOR SPRIT 

ES ** 
1358 COLOR 10,1 ,4 
1360 SCREEN 1 ,3 
1370 GOSUB U30:GOSUB 1710 
1380 PUT SPRITE 0 , (87 ,50) , C (4) f 

0 

PUT SPRITE 1 , (87,82) ,C<4) , 



1390 

1400 

1410 

1420 

1430 

1440 

1450 

1460 
1470 
1480 

1490 

1500 

1510 
1520 

1530 



1540 
1550 



1560 
1570 

1580 
1590 

1600 

1610 
1620 



1 

PUT SPRITE 2, (105,30) ,C(1) 

1 * 

PUT SPRITE 3, (127,30) ,C(1) 
,3 

PUT SPRITE 4, (105,102) ,C (3 
> ,4 

PUT SPRITE 5, (127,102) ,C( 3 
) ,5 

PUT SPRITE 6, (145,50) ,C(2) 
,6 

PUT SPRITE 7, (145,82) ,C(2) 
,7 

RETURN 

REM *** RECORDS *** 
BA=0:FOR T=5 TO 1 STEP -1 

IF PU>RE(T) THEN BA=T 

NEXT T 

IF BA=0 THEN GOSUB 1820 :R 
ETURN 

PUT SPRITE 0 , (40 ,208) : LOCA 
TE 8,21:PRINT STRING*<10,3 

2) 

LOCATE 3,5: PR I NT " ¡ HAS BATI 
DO UN RECORD !" : GOSUB 1840: 
FOR P=i TO 15:C0L0R 15,1,P 
:FÜR T=l TO 200:NEXT T : NE X 
T P 

COLOR 2,1,10 

LOCATE 6,7:DEF USR=342:JK= 
USR(2) :LINE I NPUT " ¿NOMBRE? 
" ;NM* :CLS 

NM* ( B A ) =NM* : RE ( B A ) =PU 

PR I NT : PR I NT " 000000 0000000 

QOQüQ 0 000000000 ' ' 

FOR F-l TO 19 

IF P/2=INT(P/2) THEN A*=" 

B" ELSE A*="©" 

LOCATE 0,P:PRINT A*: LOCATE 

31 ,P:PRINT A*; 
NEXT P 

PRINT " M^i^BOOOO OO OOOOfriOli 



1640 LOCATE 10, 4: PRINT " "¿"¿Féf 

II 

1650 FOR P=l TO 5 

1660 LOCATE 6 ,5+2*P : PRINT NMt(P 
) :LOCATE 20 ,5+2* R s PRINT US 
ING"####" ;RE(P) 

1670 NEXT P 

1680 LOCATE 3,18 

1690 RETURN 

1700 REM *** TABLERO *** 
1710 LOCATE 8,3:PRINT "i 



1720 FOR P=l TO 13 

1 730 LOCATE 8 , 3+P : PR I NT | \\V//aV 



MMM//I " 
1740 NEXT P. 

1750 LOCATE 8,17:PRINT'" 

i 

1.760 LOCATE 9,4:PRINT "#":L0CA 
TE 19,4:PRINT "*":LOCATE 
9,16:PRINT "#":LOCATE 19, 
16:PRINT "#" 
RETURN 
END 

REM *** MUSIQUILLA *** 



1770 
1780 
1790 

1800 



1810 
1820 



1830 
1840 



1850 
1860 



PLAY "V10S0M14000T250L4FO5 
C#C04G#05FC#C04L8G#F. .L4D# 
05C04A#G05D#C04A#L86D# . . " , 
" V 1 5S0M 1 4000T250L4O2FO3C#C 
02G#03FC#C02L8G#F . .L4D#03C 
02A#G03D#C02A#L8GD# . . " , "VI 
2S0M 1 4000T250L4O6FO7C#CO6G 
#07FC#C06L8G#F . .L4D#07C06A 
#G07D#C06A#L8GD# . . " 
RETURN 

PLAY "V1304T1 10L4GL8ABBO5C 
D . L 1 6CL804B05DC04BAL4GT 1 00 
L804DC03BAL4G . " 
RETURN 

PLAY "VI 5T80O6L6FL24GAGFEL 
1 0DL6O7DL 1 6C06AA#AGFL8GR8L 
6FL24GAGFEL 1 0DO7L6DL 1 6C06A 
A#AGFF" ,"V14T8204L6FL24GAG 
FEL 1 0DL6O5DL 1 6C04AA#AGFL8G 
R8L604FL24GAGFEL 1 0DO5L6DL 1 
6C04AA#AGFF" 
RETURN 



1630 LOCATE 10 ,3 : PRINT" RECORDS" 



FOR 1=1 TO 13:S0UND I,0:NE 
XT I :SOUND 7,184 
1870 RETURN 



261554046 



D£ cu 



)0 



aU 554046 



PARTICII 
NUESTRO 
CONCURSO 

M SX Magazine premiará cada mes los 
programas que nos hagan llegar nuestros 
lectores. 

Para participar en este concurso 
abierto, todo aficionado a los ordenado 
con este estándar deberá hacer llegar 
redacción de la revista el listado, un 
cassette y un texto explicativo 



\ v 




7 



L-ntre todos los programas que 
recibamos cada mes, serán selecc^re^adasT 
para su publicación aquellos que r^únaujfc 
los siguientes criterios: / 

— Originalidad de la aplicación/ 

— Simplicidad del método de 
programación. 

La única condición para participar en 
el concurso será que los prográmaselo 
hayan sido publicados previamente erN 
ninguna revista. 



1% 



A 



/ 



/ 



7 



ll nviar vuestros programas a: MSX Magazii) 
C/Bravo Murillo, 377 - 5.° A 28020 MADRID 



¿) 




Diagramas 
de flujo 



A medida que vas avanzando en el conocimiento 
de BASIC, tus programas se van haciendo cada 
vez más complejos; llenos de instrucciones, 
sentencias y bifurcaciones. Por ello se hace muy 
útil el uso de DIAGRAMAS DE FLUJO (también 
llamados ORGANIGRAMAS). 





V — X es 



diagrama de flujo no es 
más que un boceto de la 
estructura del programa 
que nos sirve tanto para preparar- 
lo como para recordar al cabo del 
tiempo cómo ha sido realizado. 

Personalmente, creo que no es 
necesario realizar los programas 
de flujo con excesivo detalle, basta 
con que una simple ojeada al dia- 
grama permita conocer las ideas 
principales del programa. 

Para hacer más comprensible y 
sencillo un diagrama de flujo utiliza- 
mos CAJAS con significados par- 
ticulares, y dentro de ellas indica- 
mos las variables implícitas, y en 
su caso, las operaciones a reali- 
zar. 

De momento vamos a conocer 
sólo algunas de esas cajas, que 
nos permitirán desarrollar nues- 
tros próximos programas. A medi- 
da que vayamos avanzando, ire- 
mos introduciendo las cajas que 
necesitemos. 

40 MSX 



•CD 



Se utiliza para indicar el co- 
mienzo o final de un programa. 
Dentro pondremos E (Empezar) o 
FIN según sea principio o final. 



Sirve para indicar que se han de 
introducir datos en el ordenador. 
Dentro de este símbolo indicare- 
mos los nombres de las variables. 



El rectángulo indica que se va a 
realizar una operación o cálculo. 





Dentro de esta caja se indica la 
operación u operaciones a reali- 
zar. 




El rombo significa toma de deci- 
sión. Según sea cierta o no la 
comparación que se ha escrito en 
su interior, el programa continuará 
por uno y otro vértice del mismo. 




Significa presentar un resulta- 
do. Lo utilizaremos indistintamente 
para que ese resultado se presen- 
te por pantalla, impresora, cinta 
magnética o disco. 

Recordemos el programa del 
artículo del mes pasado; con él 
calculábamos las raíces de una 
ecuación de segundo grado. En la 
figura 6(a) tienes el diagrama de 
flujo correspondiente. El diagrama 
de la figura 6(b) es algo más sim- 
ple y menos detallado que el de la 
figura 6(a). 

Existen otros símbolos para ex- 
presar las mismas operaciones, 
pero, tratándose de un elemento 
auxiliar, creo que lo más útil es que 
utilices el menor número posible 
de ellos. Lo importante de un dia- 
grama de flujo es que puedas re- 
conocerlo (y puedan otros reco- 
nocerlo) al cabo de algún tiempo. 

FOR...TO...STEP...NEXT 

Supongamos que queremos 
calcular el cuadrado, el cubo, la 
raíz cuadrada y la raíz cúbica de 
los números comprendidos entre 
1 y N. Con tos conocimientos que 



MSX 41 



basic 



DIMENSIONAR 
NBSÍIOO.DISÍJOO), 
TE! (100) 



1 = 


0 




} 


► 

\ 


1 = 


1+ 1 



NOMBRE (NB$(I)) 
DIRECCION (DIS(I)) 
TELEFONO(TEKD) 



¿OTRO NUMERO? / 
AS 



SI 




NOMBRE (NBS(II)) 
DIRECCION :(DIS(II)) 
TELEFONO(TE!(II)) 



NO . 



II = 1,1 



7 




Diagrama 1 



cuando trabajemos con variables 
con subíndice se lo indiquemos, y 
además que le digamos el tamaño 
de dicha variable, es decir, cuál es 
el valor máximo que va a tomar el 
subíndice. Esto lo hacemos por 
medio de la sentencia DIM (DI- 
MENSION) de la siguiente forma: 

DIM A/6$(100) 

De esta forma le decimos al or- 
denador que la variable NB es de 
caracteres y que va a contener 
1 00 variables. Es decir, en nuestro 
ejemplo vamos a hacer un listín te- 
lefónico en que utilizaremos la va- 
riable alfanumérica con subíndice 
NB que contendrá el nombre de 
hasta 100 personas. 

Como vamos a almacenar en el 
ordenador, además del nombre, la 
dirección y el número de teléfono 
definiremos otras dos variables, 
que llamaremos DI y TE, y por tan- 
to al dimensionarlas escribire- 
mos: 

DIM NB$(Í00), Dl$(100), TE!(100) 
(Recuerda que un número ente- 



42 MSX 




ro no tiene más de 5 cifras. Por eso 
hemos hecho la variable TE de 
simple precisión). 

Fíjale ahora en el programa 1 
(cuyo diagrama de flujo es el dia- 
grama 1). Conocemos ya casi to- 
do lo que ahí se dice. Sin embar- 
go, no conocemos la instrucción 
de la línea 40: 

40 CLEAR 20000 

Cuando conectamos el ordena- 
dor, éste reserva automáticamen- 
te 200 octetos para variables alfa- 
numéricas. Por tanto, sólo podre- 
mos tomar ese tipo de variable 
con una longitud máxima de 200 
caracteres. Si tratas de hacer, por 
ejemplo que la variable A$ valga: 

A$= «En un lugar de la Mancha, 
de cuyo nombre no quiero acor- 
darme, no ha mucho tiempo que 
vivía un hidalgo de los de lanza en 
astillero, adarga antigua, rocín fla- 
co y galgo corredor. Una olla de al- 
go más vaca que carnero, salpi- 
cón las más noches duelos y que- 
brantos», 



DIMENSKDNAR A$(IOO,2) 
B$(0)-=" NOMBRE" 
BS(I) = " DIRECCION" 
BS (2)- "TELEFONO" 



I = O 



1= 1+ I 



/ AS (1,11) / 



\ 11 s °' 2 / 



/(¿OTRO NUMERO?)/ 

L Jjü I 




y 

/ (NOMBRE) 7 
/ N BS / 




BS (1 2) 
AS(II,1 2) 



\l2: 0,2 y / 



Diagrama 2 



MSX 43 



basic 




10 
20 

30 
40 
50 
60 
70 
80 



INPUT N 

FOR 1=2 TO N STEP 2 
FOR J=1 TO 5 



T "; J; 



PRINT I; ' 
NEXT J 
PRINT 
NEXT I 
END 



FIGURA 9b 



; IT J 



Si el valor P especificado en 
STEP P es 1 , se puede omitir y es- 
cribir: 

10FORI = A1 TO A2 



100 NEXT I 

A1 , A2 y P pueden ser constan- 
tes o variables, y pueden ser ente- 
ros o reales, positivos o negativos. 
Así, se puede encribir: 



10 FOR l=A TO A*A STEP 
SQR(A) 

Sí, por ejemplo, escribimos: 

10 FOR I = 1 TO -10 STEP 2 

I empezará valiendo 1 y con es- 
te valor se realizarán los cálculos 
situados entre esta línea y NEXT I 
El siguiente valor de I es I = 1 + 2 = 
3. BASIC comprueba si este nuevo 
valor de I está entre 1 y -1 0 (entre 
A1 y A2) y, al no ser así, pasa a eje- 
cutarla la línea siguiente a NEXT\. 

Con esta nueva instrucción, 
nuestro programa quedará como 
se muestra en la figura 8(b), cuyo 
diagrama de flujo es el de la figura 
8(a). 

Evidentemente esto es más có- 
modo que lo que hacíamos antes. 




Se utiliza para repetir un trozo 
de programa desde que cierta va- 
riable (I) tome un determinado va- 




lor hasta que alcance otro. Se es- 
cribe: 

\ ^ l = A1,A2,P I 

(FOR I = A1 TO AE STEP P) 

Supongamos ahora que, dado 
N, queremos hallar las potencias 
2, 3, 4 y 5 de los números pares 
comprendidos entre 1 y N. BASIC 
permite hacer bucles FOR - NEXT 
anidados, es decir: 

FOR l=A1 TO A2 STEP P 



FOR J=B1 TO B2 STEP Q 
FOR K=C1 TO C2 STEP R 
NEXT K 
NEXT J 
NEXT I 

En BASIC-MSX se pueden ani- 
dar tantos bucles FOR-NEXT co- 
mo se desee. Lo único que se exi- 
ge es que no se solapen unos con 
otros. Es decir no es posible hacer 
lo siguiente: 

FOR NA1 TO A2 STEP P 
FOR J=B1 TO B2 STEP Q 
NEXT I 
NEXT J 

Si nos salimos de un bucle 
FOR-NEXT, los índices se iniciali- 
zan. Es decir, en el caso anterior, 
cuando el ordenador se encuen- 
tra con NEXTl toma para J el valor 
v B1 (y no J + 1). 

Por tanto podemos resolver el 
problema que nos hemos plan- 
teado con el programa de la figura 
9(b), según el diagrama de la figu- 
!ra 9(a). 

J. Antonio Feberero 



44 MSX 



SERVICIO DE EJEMPLARES ATRASADOS 



ESTOS SON LOS EJEMPLARES 
DE MSX MAGAZINE 
APARECIDOS EN EL MERCADO 
CON UN RESUMEN 
DE SU CONTENIDO 




Núm. 1 • 

¿Qué es el MSX 9 Su BA- 
SIC, periféricos, progra- 
mas, software. 




Núm. 2 

Generación de sonido. 
MSX-DOS. el ordenador 
por dentro, programas, 
noticias. 



Núm. 3 

Los joysticks. 256 caracte- 
res programables. Z80 co- 
razón de león, compro/ 
vendo/cambio. 





Núm. 4 

Las comunicaciones entre 
ordenadores, la jerga in- 
formática, trucos, rincón 
del lector 




Núm. 5 

Comandos de entrada sa- 
lida, el BASIC MSX compa- 
rado con Spectrum y Com- 
modore 64. Código Má- 
quina 



magníficos 



Núm. 6 

Los 8 magníficos (test 
gigante), el bus de expan- 
sión, los misterios de la 
grabación, programas 



O* 



***** 



Núm. 7 

Analizamos el Generador de 
Sonido. Aplicaciones mate- 
máticas con el ordenador. La 
memoria de video. Trucos, no- 
ticias. 




Núm. 8 

Compact Disc, el periférico 
del luturo. Test: Dynadata 
DPC-200. Continuamos con 
la memoria de video. Libros, 
software, programas, trucos. 




Núm. 9 

Características técnicas del 
Compact Disc. Tratamiento de 
datos. Test: Quick Disk. Tru- 
cos, libros, noticias, progra- 
mas. 



PARA HACER SU PEDIDO, RELLENE ESTE CUPON, HOY 
MISMO Y ENVIELO A MSX MAGAZINE BRAVO MURILLO, 377. 
Tel. 733 96 62 - 28020 MADRID 

i 1 

| Ruego me envíen los siguientes números atrasados | 

| al precio de 250 ptas cada uno Cuyo importe abonare | 
| □ POR CHEQUE □ CONTRA REEMBOLSO □ CON MI TARJETA DE CREDITO j 



□ AMERICAN EXPRESS □ VISA □ INTERBANK 
Numero de mi tarjeta 



Fecha de caducidad 



I 

I NOMBRE 

| DIRECCION 

| POBLACION C | 



PROVINCIA 



3-D Bola 




No hace mucho, aparecieron en 
los bares, unas maquinas con jue- 
gqs cuyo objetivo era conducir 
una bola a lo largo de un laberinto 
en tres dimensiones. Este juego 
ha servido como inspiración a Al- 



berto López, que nos ha enviado 
una entretenida versión de ese 
juego para los MSX. 

Se trata de dirigir la bola por un 
laberinto en el que existen subi- 
das, bajadas, ascensores, pinchos 



mortales y otros objetos, todo ello 
representado en tres dimensio- 
nes. Si se consigue llegar a la me- 
ta (que es un punto) antes de que 
se acabe el tiempo, pasaremos a 
la pantalla siguiente. El juego 
consta de tres pantallas diferentes. 



46 MSX 



TTtK 7 



PREMIO DE 7000 PTS 



10 COLOR 15,1 ,1 
20 OPEN"GRP :"AS#1 
30 SCREEN2,2 
40 GOSUBS70 
50 SCREEN2 

60 FOR G=0 TO 2:PUTSPRITE G,(0,0 
) ,0,10 

70 PLAY " S 1 M5000O7C64R 1 C64R 1 C64R 1 

C64R1C64R1 " 
80 PLAY"V15S1M30000O3C1O4" ,"V15S 

1M30000Ü6C1O4" 
90 PT*1 

100 GOSUB 1390 
110 GOSUB 1120 
120 B=6 
130 GOSUB 500 

140 X»X1 :Y=Y1 :TN*TM: GOSUB 1070 

150 VX=0:VY=0 

1 60 A=ST I CK ( 0 ) OR ST I CK ( 1 ) 

170 VX=VX-(A=--2 OR A«3 OR A=4)+(A 

=6 OR A=7 OR A=B) 
180 VY=VY-(A4 OR A=5 OR A=6)+(A= 

8 OR A=l OR A=2> 
190 CR-VPEEK<6144+< (Y+16) \8) *32+ 

<X+8) \8) 

200 ON CR GOTO 210,210,280,280,2 
80 , 280 , 280 , 320 , 320 , 360 , 450 , 
730,210,560,210,1080 

210 X=X+VX-VY 

220 VX=VX\1 :VY=VY\1 

230 Y=Y+VY 

240 PUTSPRITE ®,<X,Y>,Q,® 

250 PUTSPR I TE 1 , ( X , Y ) ,15,1 

260 TN=TIM-.SJ4 :IF TN=TNV1 THEN GO 

TO 1030 
270 GOTO 160 
280 VY=VY+.5 
290 Y=Y+VY 
300 X=X- (VY/2) +VX 
310 GOTO 240 
320 VX=VX+„5 
330 X=X+VX-VY 
340 Y=Y+VX+VY 
350 GOTO240 

360 PLAY"O5S8M1000C4R5C4" ,"07S8M 

1000C4R5C4" 
370 FORG=l TO 11 
380 PUTSPRITE 0,(X,Y),8,2 
390 FOR J=l TO 40:NEXT 



400 PUTSPRITE 0,(X,Y),8,0 
410 FORJ=l TO40:NEXT 
420 NEXT 

430 FORG=l TO 500:NEXT 
440 GOTO 450 

450 PUTSPRITE 0, (X, Y) ,8,2 

460 PL A Y " V 1 5S 1 M9000O7B 1 04 " , " V 1 SS 

1M9000O5G1O4" , "V15S1M9000O8 

D 1 04 " 

470 F0RG=1 TO800:NEXT 
480 GOSUB 500 
490 GOTO 140 
500 'VIDAS 
510 B=B-1 

520 F0RG=6144 TO 6150:VPOKF G,10 

: NEXT 
530 IF B=0 THEN 1630 
540 F0RG=6144 TO 6143+B:VP0KE G, 

13:NEXT 
550 RETURN 
560 'PASPANTALLA 
570 Z=0:T=0 

580 Z=Z+<X-8-Z) /10 :T=T+ ( Y+4-T) /l 

0 

590 PUTSPRITE 2,(Z,T),11,3 

600 IF X-8-Z>2 OR Y+4-T>2THEN ^8 

0 

610 FORX=X TO X-8 STEP-1 
620 FOR G=l TO 20: NEXT 
630 PUTSPRITE 0,(X,Y),8,0 
640 PUTSPRITE 1 , (X, Y) ,15,1 
650 NEXT 

660 PLAY"L3V1504CG05CL4" ,"L3Vlí=iO 
3CG04CL4" , "L3V1506CG07CL4" 

670 FOR Y=Y TO-22 STEP-1 

680 PUTSPRITE 1,(X,Y) ,15,1: PUTSP 
RITE 0, (X,Y) ,8,0:PUTSPRITE 
2, (X ,Y+4) ,11 ,3:NEXT 

690 PT=PT+1:IF PT=4 THEN PT=1 

700 GOSUB 1390 

710 B=B+1 

720 GOTO 130 

730 ' SALTO 

740 PLAY"S1M25000O3C2" 

750 PUTSPRITE 2, ( ( (X+8)\8)*8, ( (Y 

+16) \8) *8-10) ,15,4 
760 FOR VZ=-8 T08 STEP.5 
770 X=X+VX/2-VY/2 
780 Y=Y+VY/2+VZ/2 



MSX 47 



790 IF X>240 OR X < -0 DR Y>180 TH 1100 
EN 850 1110 
800 PUTSPRITE 0,(X,Y,,8,0 1120 
810 PUTSPRITE 1,(X,Y),15,1 1130 
820 NEXT 1140 
830 CR=VPEEK (6144+ ( (Y+17) \8> #32+ 1150 
(X+8>\8) 1160 
840 IF CR<10 THEN PLAY " S 1 M9900O6 1170 
C204 " , " S 1 M9900D5CG4 " 1 1 80 

850 PUTSPRITE 2, (0,0) ,0,10 
860 GDTD240 1190 
870 'SPRITES 

880 RESTORE980 1200 
890 FOR G=0 TO 4 1210 
900 Sí=-"" 1220 
910 FOR F=l Tü 32 

920 READ A* 1230 
930 S*=S*+CHR$ ( VAL ( " «<H " +A* ) ) 
940 NEXT 1240 
950 SPRITE* (G) =St- 

960 NEXT 1250 
970 RETURN 

980 DATA 07,1E,38,70,63,C7,CF,1F 1260 
,9F,9F,DF,7F,7F,3F,1F,07,E0 
,38 , 1C ,FE ,FE ,FF ,FF ,FF ,FF ,FF 127lZl 
,FF,FE,FE,FC,F8,E0 

990 DATA 0,3,F,1F,3F,3F,7F,7F,7F 1280 
,7F,3F,3F,1F,F,3,0,0,C0,F0, 
F8 ,FC ,FC ,FE ,FE ,FE , FE ,FC ,FC , 1290 
F8,F0,C0,0 

1000 DATA 5,ld,3a,7B,77,87,EA,ED 1300 
,1D,FA,D7,2F ,6E,31 ,1F,7,E0, 
F8 ,20 ,DE ,DE ,ED ,33 ,F7 ,E3 ,DC , 
2F ,76, 76, 74, 78, A0 

1010 DATA 0,0,0,0,0,0,0,0,0,?,F, 1320 
1 F , 3F , 7F , FF , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 
,0 ,0 ,FF ,FE ,FC ,F8 ,F0 ,E0 ,0 1330 

1020 DATA 31 ,4E,86,79,1 ,31. ,4E,86 

,79,l,2,C,70,0,0,0,0,0,0,iZi, 1340 

0,0,0,0,0,0,0,0,0,0,0,0,0,0 

,0,0,0 1350 
1030 IF TN=~2THEN 360 

1040 PLAY ,r SlM5000O6C32" 1360 
1050 VPOKE 6174-TN,10 

1060 GOTO 160 . 1370 

1070 FOR G=6175-TM TO 6 175: VPOKE 
.... . 6,15 :NEXT :RETURN 1380 
1080 VX=-2*VX 

1090 VY=-2*VY 1390 



PLAY " S 1 M25000O3C2 " 
GOTO210 
' CARACTERES 
RESTORE 1220 
FOR G=0 TO 135 
READ F*,C* 
F=VAL ( "S/H"+F*> 
C=VAL ( "?<H"+C*) 
VPOKE G,F: VPOKE G+2048,F:VP 
OKE G+4096,F 

VPOKE 8192+G,C:VP0KE 10240+ 

G,C: VPOKE 12288+G,C 

NEXT 

RETURN 

DATA FF, 51 ,2,51 ,4,51 ,8,51 ,1 

0,51 ,20,51 ,40,51 ,FF,51 

DATA FF, 51 ,2,51 ,4,51 ,8,51 ,1 

0,51 ,20,51 ,40,51 ,80,51 

DATA 1,51,2,51,4,51,8,51,10 

,51 ,20,51 ,40,51 ,FF,51 

DATA 10,71,10,71,20,71,20,7 

1 ,40,71 ,40,71 ,80,71 ,80,71 

DATA 1 ,71 ,1 ,71 ,2,71 ,2,71 ,4, 

71 ,4,71 ,8,71 ,0F,71 

DATA 10,71,10,71,20,71,20,7 

1 ,40,71 ,40,71 ,80,71 ,FF, 71 

DATA 1,71,1,71,2,71,2,71,4, 

71 ,4,71 ,8,71 ,F8,71 

DATA 1,71,1,71,2,71,2,71,4, 

71 ,4,71 ,8,71 ,FF,71 

DATA1 ,51 ,2,51 ,4,51 ,8,51 ,10, 

51 ,20,51 ,40,51 ,80,51 

DATA 80,51,40,51,20,51,10,5 

1 ,8,51 ,4,51 ,2,51 ,1 ,51 

DATA 0,1,0,1,0,1,0,1,0,1,0, 

1 ,0,1 ,0,1 

DATA 18,F5,.18,F1 ,3C,A1 ,7E,A 
1 ,7E,B1 ,3C,B1 ,0,11 ,FF,55 
DATA FF,51 ,0,11 ,3E,91 ,7E,91 
,7C,91 ,0,11 ,0,11 ,FF,51 
DATA 7E,F1 ,C0 ,F8 ,80 ,F8 ,FF ,8 
8 ,FF ,88 ,FF ,88 ,FF ,88 ,7E ,81 
DATA FF,51 ,0,11 ,0,11 ,C ,91 ,0 
,11 ,0,11 ,0,11 ,FF,51 
DATA 10,4F,18,4F,1C,4F,FE,4 
F, FE, 47, 1C, 47, 18, 47, 10, 47 
DATA FF,51 ,00,11 ,3C,21 ,62,2 
1 ,5E,21 ,7E,21 ,00,11 ,FF,55 
' PANTALLA 



LOS JUECOS ELECTRONICOS 



48 MSX 



Catálogo de Software 

para 

ordenadores 
personales 






Todo el Software disponible en el 
mercado reunido en un catálogo 
de 800 fichas 



1 . a ENTREGA 
550 FICHAS 
^FICHER^ 

Resto en dos entregas 
trimestrales de 1 50 fichas 
cada una 



PRECIO TOTAL DE LA SUSCRIPCION 8.000 PTAS. 

COPIE O RECORTE ESTE CUPON DE PEDIDO 




CUPON DE PEDIDO 

SOLICITE HOY MISMO EL 
CATALOGO DE SOFTWARE A: 



infoúis.s.a. 

Bravo Murillo, 377, 5.° A 
28020 MADRID 

O EN CONCESIONARIOS IBM 



El importe lo abonaré POR CHEQUE □ CONTRA REEMBOLSO □ CON MI 
TARJETA DE CREDITO □ 

Cargue 8.000 ptas. a mi tarjeta American Express □ Visa □ Interbank □ 
Número de mi tarjeta I I I I I I I I I I I I I I 1 1 I I I I I 1 I I I ] 

NOMBRE 

CALLE 

CIUDAD 



C. P. 



PROVINCIA 

ref: CATALOGO DE SOFTWARE 



TELEFONO 



CS-2 



140O FOR 6=6144 TO 6912:VPQKE B, 
10 :NEXT 

1410 ÜN PT BOTO 1600,1610,1620 

1420 READ TfTVXl ,YI ,M 

1430 GOSUB 1070 

1440 FOR B=l TO N 

1450 READ S,C,L,AV 

1460 CU=S 

1470 FOR J=l TO L 

1480 VPOKE 6144+CU,C 

1490 CU=CU+AV 

1500 NEXT 

1510 NEXT 

1520 RETURN 

1530 DATA 15,113,50,35,343,0,9,3 
I ,344,1 ,8,31 ,404,2,7,31 ,339 

,2,2,31 ,270,0,2,31 ,271 ,1 ,2, 
31 ,340,14,4,1 ,331 ,4,2,63,33 
2 ,6,2 ,63 ,363 ,5,2 ,63,364 ,3,2 

,63,457,2,3,31 ,458,0,3,1 ,46 
1 ,1 ,2,62,490,0,18,1 ,459,16, 
2,62,374,11 ,2,115,520,0,2,2 

,496,12,2,42 
1540 DATA 497,1,1,1,498,10,1,1,4 
99,2,1 ,1 ,508,1 ,2,31 ,537,2,1 

,1 ,269,2,2,31 ,340,0,3,1 ,371 

,16,1 ,1 ,372,0,2,1 ,592,0,3,1 

,529,12,2,69,595,1 ,1 ,1 ,597, 
2,2,31 ,599,0,2,1 ,601 ,1 ,2,31 

,629,11 ,3,1 

1550 DATA 20,12,150,49,328,2,2,3 
1 ,329,11 ,3,1 ,332,1 ,2,31 ,334 
,2,2,31 ,335,16,2,1 ,337,12,2 
,287,338,1 ,2,31 ,360,0,3,1 ,3 
66,0,3,1 ,390,4,4,63,391 ,6,4 
,63,422,5,4,63,423,3,4,63,3 
93 ,4 ,2 ,63 ,394 ,6 ,2 ,63 ,425 ,5 , 
2,63,426,3,2,63,462,2,2,57, 
466 , 1 ,2 ,57 ,520 ,0,3,1 ,396 ,4 , 
2,63 

1560 DATA 397,6,2,63,428,5,2,63, 
429,3,2,63,399,4,2,3,400,6, 
2,3,431 ,5,2,3,432,3,2,3,463 
,0,3,1 ,496,4,2,63,497,6,2,6 

3 ,528 ,5 ,2 ,63 ,529 ,3 ,2 ,63 ,623 
,0,1 ,1 ,371 ,2,2,294,372,0,2, 
1 ,374,1 ,2,200,375,9,6,33,37 
6,8,5,33,377,9,4,33,406,9,2 



,33 ,407 ,8 ,2 ,33 ,506 ,8 ,2 ,33 
1570 DATA 538,9,2,33,572,2,3,31, 
573,14,4,31 ,605,1 ,3,31 ,622, 
2,2,20,625,1 ,2,18 
1580 DATA 15,117,28,39,174,2,2,3 
1 ,175,0,1 ,1 ,176,1 ,2,30,236, 
4 ,2,63,237,6,2,63,268,5,2,6 
3,269,3,2,63,360,2,4,31 ,361 
,0,4,31 ,362,0,4,31 ,363,0,4, 
31 ,364,0,4,31 ,365,1 ,4,31 ,36 
4,11,1,1 ,392,11 ,2,62,394,11 
,2,63,486,4,3,63,487,6,3,63 
,518,5,3,63,519,3,3,63,675, 
2,2,31 

1590 DATA 676,1,2,34,707,0,3,1,7 
10,12,1 ,1 ,653,0,3,31 ,654,0, 
3,31 ,656,1 ,3,31 ,655,11 ,2,62 
,686,12,1 ,1 ,537,2,4,31 ,538, 
0,1 ,1 ,539,14,2,1 ,541 ,1 ,4,31 
,652,2,3,31 ,569,0,3,1 ,600,0 
,3,1 ,631 ,0,3,1 ,711 ,1 ,1 ,1 ,56 
9,16,2,1 

1600 RESTORE 1530 :BOTO1420 

1610 RESTORE 1580 :BOTO1420 

1620 RESTORE 1550 :6OTO1420 

1630 'FIN 

1640 SCREEN2 

1650 PSET (52,80) 

1 660 DRAW " S40C7EEEEERRGLGRGLSGL " 

1670 PSET (82,80) 

1680 DRAM " C5EEERGGGL " 

1690 PSET (122,40) 

1700 DRAW'cSERGL" 

1710 PSET (102,80) 

1 720 DRAW " C4EEEEERDDDDEEEERGGGGG 

LUUUUGGGGL" 
1730 PRESET (12,146) 
1740 PRINT#1 ,"<SPACE> O BOTON DE 

L JOYSTICK" 
1750 PRESET (44, 160) :PRINT#1 , "PAR 

A VOLVER A JUGAR." 
1760 LINE (0,177)-(255,177) ,15 
1770 K=K+1 :PUTSPRITE 0,(K,160),5 

,0:PUTSPRITE 1 , (K , 160) , 15 , 1 
1780 IF STRIG(0)=0 AND STRIG(1)= 

0 THEN 1770 ELSE 50 
1790 FOR G=l TO 1000:INPUT A*:PR 

INTHEX*(VAL("Í<B"+A*) > :NEXT 



LOS JUEGOS ELECTRONICOS 



50 MSX 




suso* 



LA REVISTA IMPRESCINDIBLE 
PARA LOS USUARIOS DE LOS ORDENADORES PERSONALES MSX. 

Una publicación mensual que ayuda a obtener el máximo partido a su 
ordenador. 

MSX publica cada mes programas y juegos, además de reportajes sobre 
programación y la posibilidad de ganar premios realizando programas y otros 
temas siempre de gran interés. 




MSX 

PROGRAMACION BASICA 



ADEMAS, beneficíese de un 15% DE DESCUENTO sobre el precio real de suscripción 

precio normal 

de suscripcion usted solo paga ahorro 
^WCCptas. 3.060 ptas. 15% 

APROVECHE AHORA esta irrepetible oportunidad para suscribirse a MSX 
Envié HOY MISMO la tarjeta adjunta a la revista, que no necesita sobre ni 
franqueo. Deposítela en el buzón más cercano. Inmediatamente recibirá su 
primer ejemplar de MSX más el REGALO. Y así durante un año (12 números). 




El Procesador de vídeo 



M procesador TMS 9918 A 
jmaneja la pantalla divi- 
Jdiéndola en 35 planos su- 
perpuestos numerados del 0 al 1 
(Fig. 1). 



Plano 34. Vídeo externo. 
Plano 33. Color de fondo. 
Plano 32. Diibujos y carácteres. 
Planos 0 a 31. Sprites. 

El plano más interno es el plano 
34 y el más externo el cero. Esto 
quiere decir que las figuras de los 
planos con menor número de de- 
nominación taparán a las figuras 
de los planos con mayor numera- 



ción cuando coincidan con ellas. 

El plano 34 está incluido en el 
vídeoprocesador para presentar 
en él figuras de una fuente de 
vídeo externa, como puede ser un 
aparato de vídeo cintas o también 
otro procesador de vídeo. Pero pa- 
ra nuestra desdicha, tal posibili- 
dad no está habilitada en nuestros 
modelos de ordendor. 

El plano 33 es un plano mono- 
cromático que proporciona el co- 
lor de fondo en el modo de texto 
(SCREEN 0), o el borde en el caso 
de las pantallas gráficas (SCREEN 
1 y SCREEN 2). 

El plano 32 es el plano donde 
aparecen los carácteres gráficos 



Los ordenadores SVI-318 y SVI-328 utilizan para 
el manejo de la pantalla el mismo procesador 
que los MSX, el procesador TMS 9918 A 
Por esto, muchos de los artículos publicados 
en esta revista en números anteriores referentes 
al manejo de pantalla, son válidos también para 
nuestro ordenador con algunas pocas 
diferencias. 




52 MSX 



Interioridades d< 
SVI-3 1 8 y SVI-Í 



en el modo de texto, carácteres y 
dibujos en el modo de alta resolu- 
ción (SCREEN 1), o la mezcla mul- 
ticolor en el modo de gráficos de 
baja resolución (SCREEN 2). 

Los restantes planos, del 31 al 0, 
son los planos por los que se mo- 
verán los sprites. Cada plano con- 
tendrá un solo sprite, y cuando 
dos de estos coincidan, cada uno 
en su plano, en las mismas coor- 
denadas, quedarán superpuestos 
y se verá en primer término aquel 
que se mueva en un plano de or- 
den menor. 

Los registros del 
procesador de vídeo 

El procesador de vídeo, también 
conocido con el nombre de VDP 
(Vídeo Display Procesor), tiene a 
su disposición una memoria RAM 
de 16 Kbytes conocida como 
VRAM o memoria de vídeo. 

La VRAM contiene datos que 
necesita el vídeo procesador para 
saber qué es lo que tiene que pre- 
sentar en cada momento en la 
pantalla. 

La VRAM está dividida en varias 
zonas, cada una de las cuales 
contiene datos con un determina- 
do significado como veremos más 
adelante. 

Para saber en cada momento 
qué zona de la VRAM tiene que 
consultar, así como la forma en 
que ha de tratar los datos de la 
misma, el VDP mira o consulta la 
información contenida en nueve 
registros internos, la figura 2 es 
una tabla que muestra qué es lo 
que significa dicho contenido. 

A contitnuación pasamos a ex- 
plicar detenidamente lo que signi- 
fica cada uno de ellos. 

Registro cero: 
• El bit cero de este registro habi- 
lita el plano 34, que era el plano re- 



MSX 53 



SYI 318/328 




cepción de imágenes de vídeo ex- 
terno y, por lo tanto, está siempre a 
cero en nuestro ordendor. 
• El bit 1 cuando contiene un 1 
lleva al ordenador al modo de grá- 
ficos de alta resolución si los bits 3 
y 4 del registro 1 contienen un ce- 
ro. 




La conmutación de 
bancos es importante 
para poder aprovechar 
la memoria al máximo. 

Registro 1 : 

• El MO de este registro puesto a 
cero indica al VDP que los sprites 
han de ser de tamaño normal. Un 
1 en este bit hará que los sprites 
sean de tamaño doble, o sea, que 
cada bit que define al sprite dará 
valor a cuatro pixels de la pantalla. 

• El bit 1 con valor cero indica 
que los sprites serán de 8x8 pi- 
xels, con valor 1 indicará que los 
sprites son de 16x16 pixels. 

• El bit 2 no se usa en los SVI-328 
y SVI-318y está reservado para fu- 
turas ampliaciones. 

• El bit 3 puesto a uno hará que la 
pantalla esté en el modo de gráfi- 
cos de baja resolución (SCREEN 



2), los bits que consiguen los otros 
modos de pantalla han de ser ce- 
ro. 

• El bit 4 conteniendo un uno 
consigue el modo de texto, si los 
otros bits de modo de pantalla es- 
tán a cero. 

• El bit 5 con un 1 habilita las inte- 
rrupciones del VDP. 

• El bit 6 habilita y deshabilita la 
pantalla, según contenga un 1 ó 
un cero. 

• El bit 7 selecciona el tamaño de 
VRAM. Si es cero se dispondrá de 
4 Kbytes, si es 1 serán 1 6 Kbytes 
de VRAM. 

Registro 2: 

Solamente se utilizan los cuatro 
primeros bits, del 0 al 3, con los 
que se tiene un número entre 0 y 
15 que multiplicado por 400 hex 
da la dirección de la memoria 
VRAM donde comienza lo que lla- 
maremos «tabla de denominacio- 
nes». 

Si habéis seguido los artículos 
publicados en esta revista sobre la 
VRAM de los MSX y sus divisiones, 
podéis considerar esta tabla igual 
a las que en dichos artículos se 
mencionan como tablas 0, 5, 1 0 y 
15. 

Así tenemos que cada octeto de 
esta zona «denominará» que ca- 
rácter es el que aparecerá en una 
determinada celdilla de ocho oc- 
tetos de las que componen la pan- 
talla. Todo esto lo veremos más 
detenidamente cuando veamos el 
contenido de cada registro en los 
diferentes modos de pantalla. 
Registro 3: 

Los ocho bits de este registro 
contendrán un número entre 0 y 
255 que multiplicado por 40 hex 
nos dará la dirección de VRAM en 
que comenzará la que llamare- 
mos «tabla de color» y que coinci- 
de con la tabla 1 1 de los artículos 
sobre la VRAM antes menciona- 
dos. 




Figura 1 Planos de la par 

Cada octeto de esta tabla con- 
tendrá los colores de fondo y su- 
perficie de cada octeto de pantalla 
en el modo de gráficos de alta re- 
solución como veremos al hablar 
de las tablas en este modo de 
pantalla. 
Registro 4: 

De este registro se utilizan los 
bits 0 a 2, en los que hay un núme- 
ro entre 0 y 7 que multiplicado por 
800 hex da la dirección de la ta- 
bla de «definición de patrones» 
que en los modos gráficos se 
transforma en un mapa de la pan- 
talla y por lo tanto coincide con las 
tablas 2, 7, 1 2 y 1 7 de los ordendo- 
res MSX. 

Más exactamente podríamos 
decir que los datos de esta tabla 
se verán reflejados en el antes 
mencionado plano 32 ó plano de 
patrones. 
Registro 5: 

En este registro se almacenará 
un número entre 0 y 1 27 que mul- 
tiplicado por 80 hex nos dará la di- 



54 MSX 



. PLANO 34 VIDEO EXTERNO 



-PLANO 33. COLOR DE FONDO 



-PLANO 32. DIBUJOS Y CARACTERES 



-PLANOS 0 a 31. SPRITES 



alia con el TMS 9918 A. 

rección de la VRAM donde co- 
menzará la tabla de atributos de 
sprites. Hay 4 bytes por cada pla- 
no existente para sprites donde se 
almacenarán las coordenadas de 
la posición del sprite, su color y el 
números de bits que lo componen. 
Registro 6: 

Sólo se utilizan los bits 0, 1 y 2 
de este registro y contienen un nú- 
mero entre 0 y 7 que multiplicado 
por 800 hex da la dirección donde 
comienza la tabla de patrones de 
sprites que, como su nombre indi- 
ca, contendrá las figuras que pos- 
teriormente podrán ser asignadas 
a un sprite. 
Registro 7: 

Los bits 0 a 3 de este registro 
forman un número entre 0 y 15 
que corresponde al color del pla- 
no 33^que, como vimos antes, será 
el color de fondo en el modo texto 
o el color de borde en el modo de 
gráficos. 

Los bits 4 a 7 contienen el color 
del texto en el modo de texto. 



Registro 8: 

Este es quizás el registro más 
importante del VDP ya que nos in- 
dica en cada momento el estado 
en que se encuentra el procesa- 
dor de vídeo, por esto a este regis- 
tro se le conoce con el nombre de 
«registro de estado» del VDP. 

Mientras que los otros registros 
se utilizan para colocar en ellos 
valores adecuados a lo que que- 
remos que haga el VDP, este re- 
gistro se usará para leer en él da- 
tos que nos proporciona el VDP. 

• El bit 7 es un banderín de inte- 
rrupción que nos señala ponién- 
dose a uno cuando el VDP com- 
pleta un scán (un scán es una 
línea horizontal de pixels). 

• El bit 6 es el banderín del quinto 
sprite que se alzará o pondrá a 
uno cuando haya cinco sprites en 
una misma horizontal. 

• El bit 5 es el banderín de coinci- 
dencia de sprites y se pone a 1 
cuando dos sprites coinciden o 
colisionan. 

• Los bits 0 a 4 contienen el nú- 
mero de plano en que se encuen- 
tra el quinto sprite que coincide en 
una línea horizontal. 

Acceso al procesador 
de vídeo y a la VRAM 

En el BASIC de nuestro ordena- 
dor hay dos instrucciones que nos 
permiten leer y escribir en la 
VRÁM. Estas instrucciones son 
VPEEK y VPOKE que seguramente 
habréis utilizado más de una vez. 

Por otra parte no teníamos una 
instrucción concreta que nos per- 
mitiera el acceso a los registros 
del VDP, cosa que sí ocurre en los 
ordenadores MSX con las instruc- 
ciones del tipo «VDP(n)» donde «n» 
es el número de registro al que 
queremos acceder. 

Pero hay una forma de acceder 
a estos registros que nos sirve 
también para acceder más direc- 



tamente a la VRAM. Esta forma es 
a través de los ports que comuni- 
can en nuestro ordenador al Z-80 
con el vídeo chip. 
Estos ports son los siguientes: 

• Port de salida...80 hex...escribe 

datos en la VRAM. 

• Port de salida...81 hex...porél se' 

envía la dirección de VRAM o 
el número de registro a que 
se desea acceder y a veces 
también datos. 

• Port de entrada..84 hex.Jee da- 

tos de la VRAM. 

• Port de entrada..85 hex...rese- 

tea el registro de estado para 
que la transferencia sea co- 
rrecta. 
Y la forma de usarlos: 

• La primera operación antes de 




Tanto el SVI-318 como 

el SVI-328 pueden 
llegar a tener 160K de 
RAM. 

acceder al VDP mediante los ports 
ha de ser una lectura del port 85 
hex para poner a cero el registro 
de estado y evitar así un acceso 
erróneo. 

• Forma de leer en la VRAM: 
10 X=INP(&H85) 



MSX 55 



SVI 318/3: 



3) Sustituir los parámetros 
aclaratorios por el registro al que 
queréis acceder y el dato que que- 
réis colocar en cada registro. 

4) Ayudándonos de la tabla 2 
podéis realizar esta operación en 
todos los registros y modos de 
pantalla. 

5) Después de haber realiza- 
do la prueba con todos los regis- 
tros, con varios valores en cada 
uno y en los tres modos de panta- 
lla podréis comprobar lo siguien- 
te: 

• Al meter valores en algunos re- 
gistros la pantalla no varía cual- 
quiera que sea el valor introduci- 
do, esto nos muestra que dicho re- 
gistro no se utiliza en ese modo de 
pantalla. 





El manejo del VDP se 
realiza a nivel de bit, 
en el que cada uno 
tiene su función. 

20 OUT&H81, byte bajo de la 



dirección 

30 OUT&H81,fcyte alto de la di- 
rección 

40 dato=INP(&H84) 

• Forma de escribir en la VRAM: 
10 X=INP(&H85) 

20 OUT&H81, byte bajo de la 

dirección 
30 OUT&H81, (byte alto OR 

&H40) 
40 OUT&H80, dato 
En la línea 30 se alza el sexto bit 
del byte alto para indicar al vídeo 
chip que se trata de una operación 
de escritura en la VRAM. 

• Forma de leer el registro 8: 

El registro 8 se lee cada vez que 
hacemos 

X=INP(&H85) 
esta instrucción coloca en la varia- 
ble X el valor del registro 8 colo- 
cando en dicho registro un cero. 

En los registros 0 a 7 del proce- 
sador de vídeo solamente pode- 
mos escribir, no obstante el valor 
de alguno de ellos lo podemos 
obtener de algunas variables del 
sistema como estas: 



1 NUI 1 1 Ul KS UC 






id val iduic 


DirpppifSn 


Contpnido 


RG1SAV 


FA07 hex 


Registro 1 






de! VDP. 


FORCLR 


FA0A hex 


Color del 






texto. 


BAKCLR 


FA0B hex 


Color del 






fondo. 


BORCLR 


FA0C hex 


Color del 






borde. 


SCRMOD 


FE3A hex 


Modo de 






la pantalla. 


SPRSIZ 


FE3B hex 


Tamaño 






del sprite. 






0=8*8nor- 






mal;1=8*8 






aumenta- 






do 






2=16*16 






normal;3= 






16*16au- 






mentado 


RG0SAV 


FE3C hex 


Registro 0 






del VDP. 


STATFL 


FE3D hex 


Registro 8 






del VDP. 



Figura 2 

• Forma de escribir en los regis- 
tros: 

10 X=INP(&H85) 

20 OUT&H81, dato a escribir 

30 OUT&H81, (registro 
OR&H80) 

En la línea 30 se alza el bit 7 del 
número de registro para indicar al 
VDP que es un registro y no la 
VRAM lo que se desea acceder. 

En el siguiente capítulo vere- 
mos lo que contiene cada registro 
en cada uno de los modos de pan- 
talla y cómo se usan las antes 
mencionadas tablas en cada uno 
de los modos. Si no queréis espe- 
rar al mes que viene y averiguarlo 
por vuestra cuenta podéis seguir 
el siguiente procedimiento: 

1) Escribir un pequeño pro- 
grama que haga presentes en la 
pantalla la mayor cantidad posible 
de características de la misma en 
cada modo. (Ej. sprites, color, etc.). 

2) Incluir al final de vuestro 
programa las tres líneas que per- 
miten escribir en un registro y que 
hemos visto antes. 




Solamente podemos 
escribir en los 
registros 0 a 7 del 
procesador. 



• Hay otros, en cambio, en los que 
cualquier valor introducido salvo 
uno produce cambios en la panta- 
lla, ese valor que no produce un 
cambio en la pantalla es el que 
contiene el registro cuando habili- 
tamos el modo de pantalla que es- 
tamos probando. 

Venerando Solís 



56 MSX 



Vendo impresora Philips 80 
columnas (fricción y trac- 
ción) en perfecto estado y 
garantizado. Con ella regalo 
50 cartuchos y varios proce- 
sadores de texto. También 
vendo unidad de disco Phi- 
lips, con garantia y regalo 1 5 
discos. Precio a convenir. 
Llamar a Jesús Ignacio al 
Tel.: (93) 449 46 85. 

Vendo impresora STAR SG- 
10, con interface Centronics 
120 cps., varios tipos de le- 
tras y gráficos, por 60.000 
ptas. Llamar a Vicente al Tel.: 
(93) 395 26 67. 

Vendo cable impresora Cen- 
tronics para MSX por 3.500 
ptas. Contactar con Tomás 
Loriti García ai Tel.: (93) 
215 82 08. 

Vendo ordenador MSX Sony 
HB-55P con ampliación de 
memoria de 64K y diversos 
juegos, todo en perfecto es- 
tado y 35.000 ptas. Llamar a 
Miguel al Tel.: (954) 61 26 36. 

Intercambio o compro pro- 
gramas de Contabilidad, 
Facturación, Stocks para 
Spectravídeo con unidad de 
discos 605-A. Tengo DEJA- 
SEN, SUPERBASIC, WORDS- 
TAR, CTAS. CTES. BANCA- 
RIAS, etc. Escribir a Marco 
Lorente Duval. Cl Cuenca, 
52. 46008 Valencia o llamar 
al Tel.: 325 89 30. 

Vendo ordenador Sony HB- 
75P, como nuevo y económi- 
co por comprar otro MSX con 
i disco. Llamar a partir de las 4 
a Luis. Tel.: (91) 778 52 27. 



Vendo equipo MSX, ordena- 
dor Sony HB-75P, unidad de 
disco Sony de 3.5 pulgadas, 
monitor ámbar Philips, im- 
presora Philips y programas 
de Tratamiento de Textos y 
Base de Datos. Precio a con- 
venir. Escribir a Manuel Fa- 
rrer. C/ Gracián, 18. Cala- 
tayud (Zaragoza) o llamar al 
Tel.: (976) 88 10 91. 

Vendo o cambio programas 
en cinta o cartucho. Escribir 
a Domingo Lamsfus Fernán- 
dez. C/ Colonia San Fernan- 
do, 11, Motril (Granada). 

Vendo Spectravídeo SV-328. 
Incluyo cassette, mandos de 
juego, televisor portátil Phi- 
lips en B/N, programas y li- 
bros, todo por 60.000 ptas. 
Llamar a Carlos al Tel.: (918) 
22 88 96. 

Por cambio de equipo, vendo 
Sony HB-75P en garantia y 
con muchos juegos en cinta y 
cartuchos, todo por 80.000 
ptas. Escribir a Luis Sanz. C/ 
Latarsa, 22. 50006 Zarago- 
za. 

Vendo ordenador Canon V- 
20 con poco uso y en perfec- 
to estado. Regalo cables, ma- 
nuales y muchos juegos. To- 
do por 50.000 ptas. Escribir 
a Elvis Martínez. Avda. Zamo- 
ra, 99. Vigo, 11o llamar al 
Tel.: (986) 41 45 25. 

Vendo ampliación de memo- 
ria MSX de 1 6K casi nueva de 
Sony, por 5.000 ptas. Llamar 
a José al Tel.: (91 ) 255 05 56. 




Vendo unidad de disco Phi- 
lips VY 0010, impecable, con 
programas de tratamiento de 
textos, base de datos, control 
de stocks, presupuestos, pe- 
didos, sistema DOS, ensam- 
blador y juegos. Todo ello por 
59.000 ptas. Interesados lla- 
mar a José Luis al Tel.: (93) 
870 21 90. 

Vendo libro «Juegos-Colores 
y gráficos para el ordenador' 
T1-99-4A» todo en castellano 
por 2.500 ptas. Contiene el 
mapa de memoria. Escribir a 
José Arbona Garcia. Pza. 
Juan XXIII, 1, Míslata (Valen- 
cia). 

Deseo intercambiar 
programas para MSX. 
Llamar o escribirá 
Jesús López Alvarez. 
Cl Simancas, 2. 
Malilla. Tel.: 
(925) 
68 77 38. 



fCOMPRQ 
VENDO- . 



Intercambio programas MSX 
en cinta y en disco do 3.5 pul- 
gadas. Escribir a Irono Jua- 
rros. Cl Garita, 19. 07015 
SN Palma do Mallorca o llamar al 
Tal.: (971) 40 30 50. 





Complementación de VRAM 

Aplicación-Generación 
de vídeo inversor 



Los registros dobles HL y DE se 
cargan con las direcciones final e 
inicial, respectivamente, entre las 
que se complementa la VRAM. Pa- 
ra la SCREEN 0 la dirección final 
de la VRAM donde están definidos 
los caracteres es la $7000 (4096 
en decimal); la dirección inicial es 
la $0800 (2048 en decimal). Colo- 
cando dichas direcciones en HL y 
DE y ejecutando el programa, se 
complementará toda la VRAM 
donde están definidos los caracte- 
res. Al complementar todos tam- 
bién complementamos el carácter 
BLANK. Al estar la pantalla ocupa- 
da en las posiciones vacías (sin 
otro carácter) por el carácter 
BLANK se produce aparentemen- 
te el cambio del color de la panta- 
lla y de caracteres. Con objeto de 
conseguir un efecto mejor comen- 
zamos a complementar a partir de 
$0978 (2328 en decimal) con ob- 
jeto de no complementar el carác- 
ter BLANK, de esta forma no se 



Programa Fuente 


ORG 


$F100 


LD 


HL,$1000 


LD 


DE,$0918 


OTRO CALL 


$4A 


CPL 




CALL 


$4D 


DEC 


HL 


LD 


A,L 


XOR 


E 


JR 


NZ.OTRO 


LD 


A,H 


XOR 


D 


JR 


NZ.OTRO 


RET 





Programa Fuente 

origen para programa objeto 
dirección última de caract. en VRAM 
dirección inic. a modificar en VRAM 
rutina: lee dato de VRAM 
complementamos el dato 
rutina: escribe el dato comp. en VRAM 
aputamos a la siguiente posición 



¿es el último byte? 



retorno 



modifica la parte de pantalla que 
no tiene caracteres. 

Para la SCREEN 7 cambia la lo- 
calización de la tabla de caracte- 
res; está entre las direcciones 
$0800 y $0000. Para conseguir el 
mismo efecto que en la SCREEN, 
no modificamos la parte baja de la 



tabla donde está el carácter 
BLANK. Así cargaremos: 

LD HL,$0800 
LD DE,$0118 

Estos valores pueden modifi- 
carse de forma que sólo comple- 
mentemos los caracteres que de- 



58 MSX 



seemos (por ejemplo sólo los nú- 
meros). 

Para los que no dispongan de 
un Ensamblador pueden cargar el 
progrma con éste en BASIC: 

10 REM para CREEN 0 
20 FOR l=0 TO 23 
25 READA 
30 POKE(61696+l),A 
40 NEXT I 

50 DATA 33,0,16,17,24,9,205,74, 
0,47,205,77,0,43,1 25,1 71 ,32,244, 
124,170,32,240,201 

Para la SCREEN 1 el programa 
es idéntico variando sólo los pri- 
meros datos: 

50 DATA 33,0,8,1 7,24,1 ,205,74,0, 



47,205,77,0,43,1 25,1 71 ,32,244, 
124,170,32,240,201 

* Para modificar la dirección últi- 
ma que deseamos complementar 
tenemos que variar los datas se- 
gundo y tercero (L y H) y para mo- 
dificar la dirección de comienzo 
de complementación, los datas 
cinco y seis (E y D). 



Utilización 

Este pequeño programa queda 
colocado en la parte más alta del 
mapa de memoria libre. Debemos 
protegerlo con un CLEAR. Para 
poder utilizarlo en cualquier mo- 
mento podemos definir su llama- 



da con una KEY. A continuación 
recogemos un pequeño progra- 
ma con todas estas sugerencias. 
El programa, una vez ejecutado, 
puede borrarse pues sólo iniciali- 
za unos punteros y define la KEY 1. 

60 CLEAR 200.&HF100 
70 DEF USR9=&HF100 
80 KEY 1,"A=USR9(0)"+ 
CHR$(&HD) 

Después de ejecutar este pro- 
grama tenemos en la KEY 1 una 
nueva función. Al pulsarla se nos 
convierten los caracteres en nega- 
tivo (vídeo inverso). 

Carlos Redondo Parral 
León 




ANUNCIESE 
por 

MODULOS 


MADRID 

(91)7339662 


BARCELONA 
(93)3014700 



Máquina 



Un nuevo capítulo de esta serie sobre el código 
máquina del Z80, esta vez dedicado únicamente 
a las instrucciones de rotación y desplazamiento. 
Se trata de unas instrucciones muy útiles, como 
veremos en capítulos sucesivos. Por ahora, baste 
decir que las operaciones matemáticas 
habituales (resta, multiplicación y división) se 
realizan utilizando la suma, la complementación 
y el desplazamiento. 



¿\ \ ntes que nada, hemi 
— \ \ haceros notar el sentido 
0(t /matemático de la opera- 
ción de rotación o desplazamien- 
to. Supongamos que estamos Ira- 
bajando en el sistema numérico 
decimal, el habitual para todos no- 
sotros, y consideramos el número 
500. Si tenemos en cuenta que los 
ceros a la izquierda no cambian el 
valor del numero, podemos supo 
ner que trabajamos con un campo 
fi|o de ocho dígitos, por lo cual es- 
cribiríamos 00000500. Como veis, 
simplemente hemos añadido cin- 
co ceros a la izquierda, pero se- 
guimos teniendo 500. 

A continuación, definamos la ro- 
tación izquierda como una opera- 
ción que toma el dígito de la iz- 
quierda y lo sitúa a la derecha. En 



este caso concrelo, tomaríamos el 
cero de la izquierda y lo situaría- 
mos a la derecha, obteniendo 
00005000, esto es, 5000. Como 
veis, el resultado conseguido es 
multiplicar 500 por 10. En general, 
rotando a la izquierda en cualquier 
Sistema numérico multiplicamos 
el numero por la base del sistema. 
Así, en numeración binaria, que es 
lo que nos interesa, el resultado 
sería multiplicar por dos. 

Veamos un ejemplo. El número 
binario 00001000 equivale al de- 
cimal 8. Si lo rotamos a la izquier- 
da, obtenemos 00010000, lo que 
equivale a 16 = 8 x 2. 

Si ahora consideramos la rota- 
ción a la derecha como tomar el 
dígito más a la derecha y situarlo a 
la izquierda, lo que conseguimos 







1/6 


¿ i 


24 


1 5 V A 


ÓJ 




6: 


? ? v¿ 

17 4 


480 i 


30 


37 
48 


2J 13 




2? 




3 b !8 


I44.¡ 


28 


30 




352 


18 


60 


9 16 


1664 




J¿ 




59 




i.J )/ 


236 


A 1 


60 


5 j 9 


99 


29 






L'S4¿ 


Í9 




4 t 9 


2 





-)f 7 45 
3* 

r 2 7 5 



B 2 75 

) J 40 

/ 3 42 
4 



II 



r2 28 

s 72 
.64 
f2 25 



6 2850 \: 

i. «_) (J é\ 1 

Z250 46 

l 1 4(0 48 

7 380 47 



6 2 9 ij9 

9 3 95 16C¿ 

1 1 17 
i 5 14 78C 



2 7 1? 2?8 \r 



6 \ Ift 2t 
■4 -i VJ 4 J i 



es dividir el número por la base. 
Como ejemplo, tomad el dieciséis 
en binario que conseguimos an- 
tes, y rotarlo a la derecha (16 es 
00010000: rotando nos queda 
00001000 = 8). 

Posiblemente alguno ya se ha- 
brá dado cuenta de que es muy fá 
cil cometer un grave error. En el 
caso de rotación a la izquierda, si el 
dígito de la izquierda no es un cerc, 
al pasarlo a la derecha cometeré 
mos un error. Y si se trata de rota- 
ción a la derecha y el dígito de la 
derecha no es un cero, también 
obtendremos un resultado erró- 
neo (por ejemplo, si tenemos 500 1 
y lo rotamos a la derecha nos dará 
1 500, que no es lo mismo que di- 
vidir 00 1 5, que no es lo mismo que 
5001 multiplicado por 10). 

Para poder controlar este error, 
CASI TODAS las operaciones de 
rotación y desplazamiento intro- 
ducen el bit desplazado en ol flny 
de acarreo, con lo cual, una vez 
realizada la rotación, basta con ve- 
rificar este flag para saber si el re- 
sultado que tenemos es o no co- 
rrecto. Además, el número alma- 
cenado en el flag de acarreo tras 
la operación será el resto de la di- 
visión en el caso de la rotación a la 
derecha. 

En algunas operaciones el bit 
desplazado se sitúa en su lugar de 
destino y en el acarreo, mientras 
que en otras se sitúa en el acarreo 
y el que había en el acarreo se si- 
túa en el destino de la rotación. 
Además, las instrucciones de des- 
plazamiento no sitúan el bit des- 
plazado en el otro extremo, sino 
que siempre va al acarreo, y el 
nuevo bit introducido no proviene 
del acarreo, sino que es un cero fi- 
jo o es el mismo bit que tenía an- 
tes. Lo veremos mejor con los 
ejemplos y con la tabla I, 



código máquina 



Vamos ya con el análisis gene- 
ral de las instrucciones: 

RLCA: Las siglas corresponden 
a Roíate Left Circular Acumulator 
(Rotación Circular a la Izquierda 
del Acumulador). El flag N y el H se 
ponen a cero, y el acarreo se acti- 
va o no según cual fuera el bit siete 
antes de la operación. En la tabla 1 
podéis ver qué es lo que hace: el 




lAi AtfflAAS X MU/ WAJL 

A5AECTD. 

7 





* Oifo AL&O DE UÑA TERCfcM ) 
'« 6£UMKÍ\ÓN ' ' 



j. 




I I l 



/ y OeSPOBS Mt/PRÁN LA CUANTA 
[LAQU¡UTA,LA SEXTA, LA ÚPTÍMA ' 



7 




bit siete pasa a la derecha despla- 
zándose los demás una posición a 
la izquierda. El bit siete se copia 
además en el flag C (acarreo). Es 
una instrucción de un solo byte. 

RLA: Roíate Left Acumulator 
(Rotación Izquierda del Acumula- 
dor). 

Los , flags son afectados 
igual que en la anterior. En este 
caso, el bit siete pasa al acarreo, el 
acarreo para al bit cero y los de- 
más desplazan una posición a la 



izquierda. Es también una opera- 
ción de un byte. 

RRCA: Rotaíe Righí Circular 
Acumulator (Rotación Circular a la 
Derecha del Acumulador). Es la in- 
versa de RLCA. El bit cero pasa a 
la posición siete y los demás se 
desplazan a la derecha. Además, 
el bit cero se copia en el acarreo. 
Los flags H y N quedan también a 
cero, y el acarreo varía según fuera 
el estado previo del bit cero. Es 
también una operación de un by- 
te. 

RRA: Rotaíe Righí Acumulaíor 
(Rotación Derecha del Acumula- 
dor). Es la inversa de RLA. El bit 
cero pasa al acarreo, el acarreo al 
bit siete y los demás se desplazan 
un lugar a la derecha. Los flags 
quedan igual que en la anterior. 
De nuevo se trata de una opera- 
ción de un solo byte. 

RLC s: s representa a uno de los 
registros B, C, D, E, H, L, A y a la po- 
sición de memoria a la que apunta 
(HL), (IX+d) o (lY+d), donde d es el 
desplazamiento relativo respecto 
a la dirección a la que apunta IX o 
IY, como vimos en capítulos ante- 
riores. 

Esta operación afecta a todos 
los flags: N y H quedan a cero, el 
flag P/V indica sobrepasamiento, y 
los restantes flags (C, Z y S) que- 
dan según sea el resultado de la 
operación. Como veis, una de las 
posibilidades es RLC A, cuya fun- 
ción es la misma que RLCA pero 
con la diferencia del efecto en los 
flags y de que RLC A ocupa dos 
bytes. 

En cuanto al desplazamien- 
to de los biís, es el mismo que en 
RLCA pero según la instrucción 
actúa sobre cualquiera de los re- 
gistros señalados. 



RL s: s es lo mismo que en la 
instrucción anterior, y el efecto 
producido en los bits es el mismo 
que en RLA. Los flags quedan 
igual que en la instrucción ante- 
rior. 

RRC s: s es lo mismo que en las 
instrucciones anteriores, y el efec- 
to producido es el mismo que en 
RRA Los flags quedan igual que 
en las instrucciones anteriores. 

RR s: s es lo mismo que en las 
instrucciones anteriores, y el efec- 
to producido en los bits es el mis- 
mo que en RRA Los flags resultan 
afectados de igual modo que en 
las instrucciones anteriores. 

SLA s: Shifí Left Arirmeíhic. 
Desplazamiento Aritmético a la Iz- 




1**1 CMSJMfr} \ 

¡ ¡IW LOCURAS MAgA^LLOSA «» \ 
ME. HA*/ PICHO \ 




NO OgíflU/rc MI HAfOfi 

W TOPO 1*1 OfAS Oí uH7ii\ 
JctíC fr£ Hí COMVQO 005 UKüftA^ 



quierda. La letra s representa lo 
mismo que en las instrucciones 
anteriores. En este caso, el bit siete 
se copia en el acarreo, los demás 
bits se desplazan a la izquierda y 
en el bit cero se introduce un cero. 



62 MSX 



MNEMONICO 



RLCA 



RL A 



RRCA 



RRA 



RLC S 



R L s 



RRC 



OPERACION SIMBOLICA 



7 <«- O 

s 



3 



es 



reí 



7 <4 0 > 



7 i olJ 



7 ► O 



MNEMONICO 



Los flags queo¿^ igual que en las 
instrucciones anteares. 

SRA s: Shift Right Ati'methic. 
Desplazamiento Aritmético a la 
Derecha. La letra s representa lo 
mismo que en las instrucciones 
anteriores. En esta operación, el 
bit cero de copia en el acarreo, los 
demás bits se desplazan a la de- 
recha, y en el bit siete se realiza 
una copia del anterior bit siete, 
ahora bit seis. Esto permite dividir 
el número sin perder el signo, aun- 
.que esto lo comentaremos más 
adelante. 

SRL s: Shift Right Lógica!. Des- 
plazamiento Lógico a la Derecha. 
La letra s representa lo mismo que 
en las instrucciones anteriores, y 
se trata de la operación inversa de 
SLA. El bit cero se copia en el aca- 
rreo, los demás se desplazan a la 
derecha y el bit siete se pone a ce- 
ro. Los flags quedan igual que en 
las operaciones anteriores. 



R R < 



SLA s 



SRA, 



SRL S 



RLD 



R R 0 



OPERACION SIMBOLICA 



I* 7 ► O 



[Cjrf 1 7 j O [ «O 



tí 



Oú 7. 



7 4 



3 O 



A T[ 



7 4 


3 0 


—i 4 lü 



7 4 



3 O 



7 4 



3 O 



J(HL) 



s, representa: 

A.B.C.O.E.H.L.ÍHLMnUd), { lY+d) 



RLD: Rotate Left Decimal. Rota- 
ción Decimal a la Izquierda. Esta 
operación permite trabajar con 
números codificados en BCD. Es- 
ta codificación consiste en repre- 
sentar un número decimal sin 
convertirlo a binario, de la siguien- 
te forma: 



0 


0000 


1 


0001 


2 


0010 


3 


0011 


4 


0100 


5 


0101 


6 


0110 


7 


0111 


8 


1000 


9 


1001 



con lo cual los números binarios 
1010, 1011, 1100, 1101, 1110 y 
1 1 1 1 no se utilizan. Como veis, pa- 
ra cada dígito decimal necesita- 
mos cuatro bits, con lo cual pode- 
mos introducir en cada byte dos 
dígitos, uno en los cuatro bits de la 
izquierda, y otro en los cuatro bits 



ele la derecha. Veamos un ejem- 
plo: 

El número hexadecimal 37H es 
igual a 1 6 x 3+7=55 decimal. Aho- 
ra bien, si consideramos que es un 
número codificado en BCD, para 
interpretarlo lo pasamos a binario 
y lo separamos en dos grupos de 
cuatro bits: 

37H=001 101 11=0011 0111 

Viendo ahora la tabla anterior, 
vemos que 001 1 representa al 3 y 
0111 al 7, luego 37H representa 
en BCD a 37 decimal. 

Es muy importante que nos de- 
mos cuenta de que nuestro micro- 
procesador Z80 no distingue entre 
binario y BCD. Somos nosotros los 
que, al programar, debemos ac- 
tuar según queramos trabajar con 
los números. 




•me m SALIDO 5/ETfHmm IV 





8UEW0. £5 ¡6üAL. 

c~ 



BSTOY ÉWOtfJZADO. 

1 



MSX 63 



código máquina 



Volviendo a la instrucción que 
nos ocupa (RLD), ésta no realiza 
una rotación de un bit, sino de gru- 
pos de cuatro bits, de forma que lo 
que conseguimos es desplazar un 
dígito BCD en cada rotación. Para 
ello se utiliza UNICAMENTE el 
acumulador y la dirección de me- 
moria a la que apunta el registro 
(HL), de esta forma: 

1 ) Los bits 4 a 7 de (HL) pasan a 
las posiciones 0 a 3 del acumula- 
dor. 

2) Los bits 0 a 3 de (HL) pasan a 
las posiciones 4 a 7 de (HL). 

3) Los bits 0 a 3 del acumula- 
dor pasan a las posiciones 0 a 3 
de (HL). 

4) Los bits 4 a 7 del acumula- 
dor no cambian. 

En la tabla 1 observaréis más 
gráficamente esta operación. 

RRD: Rotate Right Decimal. Ro- 
tación Decimal a la Derecha. Es la 
operación inversa de RLD. Tanto 
en este caso como en el anterior, 
resultan afectados todos los flags 
excepto el acarreo. Los flags N y H 
se quedan a cero, y el flag P/V in- 
dica paridad (P). 

Una vez vistas las instrucciones, 
y antes de pasar al ejemplo, expli- 
caremos más a fondo la instruc- 
ción SRA s. 

Como ya comentamos en un 
capítulo anterior, una forma de re- 
presentar los números es el com- 
plemento a dos. En esta forma, el 
bit siete indica el signo (0 = positi- 
vo, 1 = negativo), y los bits 0 a 6 el 
módulo del número en comple- 
mento a dos. El complemento a 
dos de un número se consigue in- 
virtiendo cada bit y sumando uno. 
Veamos un ejemplo: 

Para representar 30 decimal lo 
haríamos en binario normal, esto 
es 0001 1 1 10. Si queremos repre- 
sentar -30, escribimos 30 y lo in- 
vertimos: 00011110 
11100001 



y después le sumamos 1 : 
11100001 
+ 1 
11100010 = -30 en 
complemento a dos. 

La utilidad de la instrucción SRA 
s es que nos permite dividir por 
dos un número en complemento a 
dos, obteniendo el resultado tam- 
bién en complemento a dos y con 
el resto en el acarreo. 

Veámoslo con dos ejemplos, un 
número positivo y otro negativo: 

a) 1 52 = 7 con resto = 1 

1 5 decimal = 00001 1 1 1 después 
de SRA: 000001 1 1 Carry = 1 , que 
es 7 y resto 1 . 

b) -1 1 42 = -57 con resto = 0 
-114 decimal = 10001110 en 
complemento a dos después de 
SRA: 1 1 0001 1 1 Carry = 0, que es 
—57 en complemento a dos con 
resto 0. 

En cuanto a las dos últimas ins- 
trucciones explicadas (RRD y 
RLD), queremos haceros notar 
que una rotación decimal equivale 
a multiplicar o dividir por diez el 
número en BCD. 

Y ahora, el ejemplo. El progra- 
ma que vamos a analizar tiene co- 
mo finalidad inmediata imprimir 
en la pantalla una serie de ceros y 
unos que corresponden a los bits 
de una posición de memoria. Des- 
de el BASIC podemos pokear el 
número que queramos analizar en 
la dirección adecuada, y el pro- 
grama nos devolverá los 8 bits 
que lo forman (por supuesto, para 
números entre 0 y 255). 

ORG B000H 
PRINT: EQU 00A2H 
ENT $ 

LD HL.DIRECC 
LD B.08H 
LAZO: RL (HL) 
LD A.30H 
JR NC.SALTO 
ADD 01 H 





64 MSX 



SALTO: CALL PRINT 
DJNZ SALTO 
LD A.ODH 
CALL PRINT 
LD A.OaH 
CALL PRINT 
RET 

DIRECC: DEFB 00H 
END 

Analicemos: lo primero que ha- 
cemos es definir la etiqueta PRINT 
como la dirección de la rutina para 
imprimir un carácter en la pantalla. 




Esta rutina necesita que le demos 
en el acumulador (AA) el código 
ASCII del carácter a imprimir, lue- 
go la misión de nuestra rutina ha 
de ser analizar cada bit del núme- 
ro en cuestión, y cargar en el acu- 
mulador el código ASCII del cero 
(30H) o del uno (31 H) según co- 
rresponda. 

DIRECC es la dirección de me- 
moria en la cual pokearemos des- 
de el BASIC el número a analizar. 
Así, al cargar esa dirección en HL, 
\a instrucción RL (HL) rotará el nú- 
mero que queremos analizar. 

Antes de empezar a rotar, car- 
gamos el registro B con 8, ya que 



hemos de realizar la rotación 8 ve- 
ces, una por cada bit Utilizamos el 
registro B como contador de un 
bucle que cerramos con la ya co- 
nocida instrucción DJNZ. 

Ahora cargamos el código AS- 
CII del cero en el acumulador. Si él 
bit siete del número era un uno, 
este uno habrá pasado al acarreo, 
por lo cual no se realizará el salto 
en JR NC, y sumaremos al acumu- 
lador uno, obteniendo el código 
ASCII del uno (31 H). En caso con- 
trario, sí se realiza el salto, y el acu- 
mulador permanece con 30H. 

Ya sólo falta llamar a la rutina de 
impresión de carácter y cerrar el 
bucle. Deetrás enviamos a la pan- 
talla los caracteres de control ODH 
y OAH para simular la pulsación de 
la tecla RETURN. Y por supuesto, 
terminamos con RE 7 para volver al 
BASIC 

Con la instrucción DEFB lo que 
hacemos es guardar una posición 
de memoria para el número a 
analizar. Aquí es donde debere- 
mos pokearlo desde el BASIC 

El siguiente programa en BASIC 
carga el código máquina, os pide 
el número a analizar y ejecuta la 
rutina: 

10 CLEAR 200.&HB000 
S=0:FOR N=0 TO 29 
READ D$:D=VAL("&H"+D$): 
S=S+D:POKE &HB000+N.D 
NEXT N:IF S<>2544 THEN 
PRINT "ERROR EN LOS 
DATAS": END 
DEF USR=&HB000 
INPUT "NUMERO";NN 
POKE &HB01D.NN 
80 A=USR(0) 
90 PRINT:GOTO 60 
100 DATA21,1D,B0,06,08,CB,16, 
3E 

1 1 0 DATA 30,30,02,C6,01 ,CD,A2, 
00 

120 DATA10,F3,3E,0D,CD,A2,00, 
3E 

130 DATA 0A,CD,A2,00,C9,00 



20 
30 

40 



50 
60 
70 



MSX 65 



Rincón 



CAMBIO DE ORDENADOR 

Tengo un ordenador de la pri- 
mera generación y estoy pensan- 
do en cambiarlo por uno se la se- 
gunda con el fin de gestionar una 
pequeña empresa. ¿Sería sufi- 
ciente un ordenador de este tipo 
para mis empeños? ¿Cuáles son 
los tres mejores de gestión en los 
campos de contabilidad, trata- 
miento de textos y bases de datos 
que entán o aparecerán en el mer- 
cado? 

También me gustaría que me 
aconsejaran sobre el equipo que 
debe reunir y su coste aproxima- 
do. 

Javier García Huesma 
Valencia 

No cabe duda, que con el cambio 
saldría ganando bastante, al ser los 
ordenadores de la II generación al- 
go más completos que los primeros. 
Sin embargo, hay que tener en 
cuenta que el software para la nueva 
generación apenas existe y, aunque 
sea compatible el ya existente con 
las nuevas versiones, faltaría pro- 
barlos a fondo para asegurarse de 
ello. 

Los aparatos de la primera gene- 
ración, están bastante bien para lle- 
var una pequeña gestión, siempre y 
cuando tenga una unidad de disco. 
Este es, quizás el punto más impor- 
tante, la unidad de disco. 

Hoy por hoy, cualquier gestión 
por pequeña que sea requiere el 
uso de este importante periférico. 
Las razones son obvias, rapidez de 
acceso, facilidad de manejo, etc. 

Referente al software, el trata- 
miento de textos y la base de datos 
más importantes que conocemos 
son el MS-TEXT, MS-BASE, IDEA- 
TEXT e IDEA-BASE, respectivamen- 
te. Los dos primeros son de Philips y 
vienen en disco y los dos siguientes 
son de Idealogic y vienen en cartu- 
cho. Con estos, le garantizamos que 
no tendrá que pensar en cambiarse 
de ordenador. 



jdel lector.. 

IMPRIMIR COPIAS 
DE PANTALLAS 

Me gustaría que me informaran 
sobre la manera de hacer una co- 
pia de pantalla a impresora. Qué 
modificaciones habría que hacer, 
si ésta fuera el caso. 

Patricia Torres 
Madrid 

Desgraciadamente, los ordena- 
dores MSX no tiene una instrucción 
que permita volcar la pantalla a la 
impresora. Sí se puede hacer con 
una rutina en código máquina, la 
cual publicaremos en meses suce- 
sivos. 

COBOL PARA MSX Y UN 
LIBRO CON PROBLEMAS 

Os escribo para preguntaros si 
en el mercado existe algún tipo de 
programa que pueda trabajar en 
COBOL. Es caso de que existan, 
¿dónde puedo conseguirlo y a 
qué precio? 

Asimismo, quisiera plantearles 
un problema que me surgió al 
comprar un libro que vosotros co- 
rrí en tásteis en una de vuestras re- 
vistas, concretamente «El Libro 
Gigante de los Juegos MSX» de 
Anaya Multimedia. El problema se 
presenta cuando intento ejecutar 
un programa del libro, que a pe- 
sar de haberlo repasado varias 
veces, no ejecuta. Os escribo a 
vosotros porque ya he mandado 
dos cartas a la editorial del libro y 
no me han solucionado el proble- 
ma. 

José A. Ortega Santana 
Las Palmas de Gran Canarias 

Hasta la fecha no tenemos noticia 
de que existe un compilador CO- 
BOL para ordenadores MSX. Hoy 
por hoy, existen de Pascal (Sony), 
LOGO (Philips) y se presentará en 
breve un compilador de lenguaje C. 

De cualquier manera, nada mejor 
que dirigirse a una de estas tres em- 
presas, las cuales están en constan- 
te movimiento para conseguir la no- 



vedad en el mercado. Se trata de 
Idealogic, Philips y Sony. 

Por lo que respecta a la segunda 
cuestión, nos extraña que en Anaya 
no te hayan solucionado el proble- 
ma, ya que los libros recorren un lar- 
go camino de comprobaciones, re- 
pasos, etc. antes de ser puestos a la 
venta. De cualquier manera, mánda- 
nos (si puedes) una copia del listado 
o indícanos en qué programa te sale 
el error para intentar corregírtelo. 



USO DE LOS 32K 
DE MEMORIA 

Mi consulta es la siguiente: 
¿Cómo puede usar los 32K so- 
brantes para almacenar las varia- 
bles y matrices de mi programa 
en BASIC? 

Juan Pedrals 
Barcelona 

En el número de febrero de MSX 
(pág. 34), publicamos un programa 
excepcionalmente bueno, titulado 
«Más memoria utilizable» sobre la 
forma de utilizar los otros 32K de 
memoria. Dicha utilidad permite te- 
ner dos programas en memoria si- 
multáneamente. 

COMPILADOR FORTRAN 

Me gustaría hacerles una pre- 
gunta, ¿hay algún cartucho o cin- 
ta que pase el lenguaje del orde- 
nador a FORTRAN?, ya que a mí, 
particularmente, me interesaría 
poder utilizar un lenguaje que a 
nivel operativo y de programa- 
ción sea más completo que el BA- 
SIC. 

Tomás Fernández Ibáñez 
Cantabria 

Hasta la fecha no existen compi- 
ladores FORTRAN ni en cartucho, ni 
en cinta. 

Sin embargo, con la aparición de 
los ordenadores de al II generación, 
se barajan ya la creación de varios 
compiladores entre otros de FOR- 
TRAN. 



SONYCONVOCA EL T GRAN CONCURSO DE PROGRAMAS MSX. 

1000.000 



Se ha abierto ya la convocatoria del 2 o Gran Concurso de Programas MSX. Hay dos categorías 
de participación: Una, para Centros Docentes; otra para particulares y público en general. 




En la categoría de "Centros Docentes" 
se aceptarán todos los programas cuyo tema sea 
pedagógico pero que, por supuesto, no sean la mera 
copia de un libro o de un programa ya existente. 
Lo que se pretende es estimular la creatividad. 
En la segunda categoría, que denominamos 
"General", los programas que participen deberán 
corresponder a uno de los cuatro temas siguientes: 

► Simulación en el ámbito de las Ciencias (Física, 
Química, Biología, Ecología, etc.). Se trata de 
crear un programa que simule un caso real 

o imaginario. 

► Música (creación, interpretación, generador de 
sonidos y ritmos, etc.). 

► juegos de aventuras. 

► Gráficos y Diseños (se valorará la posibilidad de 
impresión en Plotter). 



SONY tendrá la propiedad de los programas 
premiados. 

SONY tendrá los derechos de compra sobre el 
resto de los programas presentados. 
Los programas que concursen deberán ser 
presentados grabados en cinta de audio SONY 
o diskette SONY OM-D3440, entregándose dos 
copias. Asimismo se deberá adjuntar un listado 
del programa, instrucciones de funcionamiento y 
una síntesis del contenido del programa. 
Con cada programa se entregará un sobre 
cerrado conteniendo los datos del autor o autores, 
y en el exterior figurará el título correspondiente. 
Todos los concursantes, independientemente de 
su clasificaciónñnal serán obsequiados con 
un producto C 





Los premios se repartirán también 
según las categorías: 

ría Centros Docentes. 



- Un único premio de un millón ae pesetas a 
repartir entre el Centro Docente y el autor del 
programa. 500.000- Ptas. para cada uno. 
Cate g oría GeneraL 

- Un premio de 500.000 - Ptas. para el que quede 
clasificado en pnmer lugar. 

- Dos premios de 300.000- Ptas. para los que 
queden clasificados en segundo lugar. 

- Tres premios de 100.000 - Ptas. para los que 
queden clasificados en tercer lugar. 

Todos los premios serán en material SONY. 



La fecha límite para la recepción de los 
programases el 30 de Enero g> 1,987. Debiendo 
ser entregados a SONY ESPAÑA, S.A., 
Departamento de Ordenadores MSX. Sabino de 
Arana,42-44 # 08028 - Barcelona; TEL. (93) 330.65.5 1 . 




Entre todos los programas recibidos, el 
jurado elegirá los que, a su juicio, contengan un 
mayor nivel de innovación y creatividad. 

El fallo será público el I de 




fea* 



- Los programas presentados por los 
Centros Docentes deberán tener un máximo de 
28K.RAM. 

Los programas presentados por particulares para 
la Categoría General deberán tener un máximo 
de 12 K.RAM. 



Lo« Sres. Juan Boía Fetrán 
de Coturtantí (Taaagona) 
Jeftúi Ajtín Gascón de 
Salamanca, y £nwqu* 
Riera Quile* de Valencia 
fueron ganadores del 
Primer Concurso de 
Programa* MSX. Su* 
programas sido 
prjbEaado* por SONY y 
actualmente están siendo 
comefcküiiados. Con los 
ganadores de este ano 
se hato lo mismo. Tú 
puedes ser uno de ellos. 



Abnlde L987 y publicado 
en la prensa nacional. 
Para mayor inlormación o 
consulta diríjase a 
cualquiera de 
las Delegaciones SONY. 

ORDENADORES 

HIT 3IT 



BARCELONA 

Sabino de Arana. 42-44 
TeL (93) 330 65 51 
DNA 



DELEGACIONES SONY ESPAÑA, S.A. 



MADRID 

Julián Romea. 8 
Tel. (91)253 08 00 
28003 MADRID 



BILBAO 

Pmtor Lecuona, 1 
Tel. (94) 444 42 00 
48012 BILBAO 



SEVILLA 

Niebla, 8 

Tel (954) 27 47 07 
41011 SEVILLA 



VALENCIA 

Salvador Fenandis Luna. 6 
Tel. (96). 325 35 06 
46018 VALENCIA 



LA CORUÑA 

Avda Ejército, 23 
Tel (981) 29 98 55 
15006 LA CORUÑA 




lOonami 




y¡eArKUNG~FU2 



na 




¡I el KUNG-FU 1, el maestro Lee aniquiló a toda la banda de Chop Suey 
El malvado Yen Pey ha sido el único superviviente. 
¡¡AQUI TIENES LA REVANCHA! 




SERNA 



1Ú2 JUGADORES 
- CICLISMO 

- TRIPLE SALTO 

- DESLIZAMIENTO 
- SALTO CON PERTIGA 



RECORTA Y ENVIA ESTE CUPON A SERMA C/. BRAVO MURILLO, N.° 377. 3.» A • 28020 MADRID • TELEFONOS: 733 73 1 1 - 733 74 64 

CANTIDAD 

NOMBRE Y APELLIDOS: , 

DIRECCION: CODIGO POSTAL 

POBLACION: PROVINCIA 

FORMA DE PAGO ENVIO TALON BANCARIO □ CONTRA REEMBOLSO □